Найти объекты неактивного компьютера в Active Directory из нескольких подразделений - PullRequest
0 голосов
/ 31 декабря 2018

Я изо всех сил пытаюсь создать сценарий PowerShell и не могу найти полное решение в Интернете.

В основном сценарий должен иметь несколько функций:

  1. Требуется вернуть неактивные компьютерные объекты на основе атрибута LastLogon в течение 30, 60, 90 дней.
  2. Требуетсячтобы возвращать результаты из нескольких OU, а не только одного.
  3. Необходимо исключить любое OU со словом Laptop в нем.
  4. Необходимо отправить результаты в формате .csv на адрес электронной почты.

Пожалуйста, найдите мой дерьмовый старт здесь, который выводит 30,60,90 дней, но только из одного подразделения. Неактивные компьютеры PowerShell

1 Ответ

0 голосов
/ 31 декабря 2018

Поскольку вы получаете требуемый результат, вам нужно только выполнить итерацию.

Чтобы получить весь список всех OU из AD, вы можете использовать следующую команду.

$OUs=Get-ADOrganizationalUnit -Filter *  | Select-Object -ExpandProperty DistinguishedName

Чтобы исключить любое подразделение со словом «ноутбук», вы можете использовать приведенный ниже фрагмент.

$OUsWithoutLaptop=$OUs | where {$_ -notlike '*Laptop* '}

Затем вы можете использовать итерацию, как в следующем примере.

foreach ($item in $OUsWithoutLaptop)
{
    $time = (Get-Date).Adddays(-60)
Get-ADComputer -SearchBase $item -Filter {LastLogon -lt $time -and enabled -eq $true} -Properties LastLogon, description| ? {$_.distinguishedname -notlike '*OU=SydLaptops,OU=SydComputers,OU=Sydney,DC=domain,DC=domain,DC=domain'} |
select-object Name,DistinguishedName, description, enabled,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.LastLogon)}} | export-csv $logfile60 -notypeinformation
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...