Скрипт удаляет не активные ПК более 60
<# .SYNOPSIS Удаление не активных ПК более 60 .DESCRIPTION Скрипт удаляет не активные ПК более 60 #> #╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗# $Host.UI.RawUI.WindowTitle = "Удаление не активных ПК более 60" #╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝# Import-Module ActiveDirectory [system.gc]::Collect() $ErrorActionPreference="Continue" #------ Logging section ------# $fileLocation = (gi $MyInvocation.InvocationName) | ForEach-Object { $fileDirectory = "$($_.DirectoryName)\$($_.BaseName)"; "$fileDirectory\$($_.BaseName)_$('{0:yyyy-MM-dd}'-f(date))"; if (!(Test-Path "$fileDirectory")) { ni "$fileDirectory" -ItemType "directory" | Out-Null } } #------ Variables ------# $Result = @() $OrgUnit = "OU=Locations,DC=adminbd.ru,DC=ru" $td1 = (Get-Date).adddays(-60) # Шаг 7 дней $td1=$td1.ToFileTime() #------ Workspace ------# #Get-ADComputer -SearchBase $OrgUnit -Filter {lastLogonTimeStamp -le $td1 -and Enabled -eq "True"} -Properties 'lastLogonTimeStamp','Name'| Select-Object 'Name',@{n='lastLogonTimeStamp';e={[DateTime]::FromFileTime($_.lastLogonTimeStamp)}} | Export-Csv -Path C:\tmp\pc.csv -Encoding UTF8 $PCadminbd.ru = Get-ADComputer -SearchBase $OrgUnit -Filter {lastLogonTimeStamp -le $td1} -Properties 'lastLogonTimeStamp','Name'| Select-Object 'Name',@{n='lastLogonTimeStamp';e={[DateTime]::FromFileTime($_.lastLogonTimeStamp)}} #| Export-Csv -Path C:\tmp\pc.csv -Encoding UTF8 ForEach ($PC in $PCadminbd.ru) { Remove-ADComputer -Identity $PC.name -Confirm:$False $detailed = [ordered]@{ Name = $PC.name Status = 'delete' Error = '' } #------ Error ------# if ($detailed.Error -eq "") { $Error.Clear() if($Error[0]) { #Write-Host "Error logged" foreach ($E in $Error) { $detailed.Error += $E.Exception.Message } } else { $detailed.Error = "No error" } } $Result += New-Object PSObject -Property $detailed } #------ Finishing ------# $Result | Export-CSV -Path "$fileLocation" -NoTypeInformation -Append -Force -Encoding "UTF8" -Delimiter ";"
Similar Posts:
- Как сделать скрипт для отключения учетных записей пользователей с просроченными паролями.
- Как Убрать переключатель PasswordNeverExpired
- Как создать переадресацию с одного ящика на другой в exchange. Переезд в другой домен.
- Как создать контакты в exchange из другого домена.
- Как сделать автоматическую смену пароля у пользователя exchange и отправка нового пароля на email.