Весенняя уборка: соберите устаревшие учетные записи AD и переместите их в OU

Опубликовано: 2 Марта, 2023
Весенняя уборка: соберите устаревшие учетные записи AD и переместите их в OU

Существует множество сценариев и команд PowerShell для получения устаревших учетных записей компьютеров из домена Active Directory. Некоторые сценарии PowerShell включены для перемещения устаревших учетных записей в организационное подразделение, а некоторые сценарии PowerShell предоставляют функцию отправки отчета об устаревших учетных записях по электронной почте. В этой статье мы объясним, что нужно для сбора устаревших учетных записей из доменов Active Directory и как переместить их в организационное подразделение.

Какие команды PowerShell можно использовать?

Чтобы получить устаревшие учетные записи компьютеров, вы можете использовать командлеты Get-ADComputer PowerShell. Командлет Get-ADComputer PowerShell предоставляется как часть модулей Active Directory PowerShell. Давайте рассмотрим несколько примеров использования командлета Get-ADComputer.

Примеры команд PowerShell Get-ADComputer

Командлет Get-ADComputer PowerShell поддерживает указание параметров для получения устаревших учетных записей. Обратите внимание, что нет простого параметра, который можно использовать для извлечения устаревших учетных записей — вам потребуется указать комбинацию параметров, таких как LastLogonTimeStamp и дни неактивности, как показано в сценарии PowerShell ниже:

$ThisDomain = «TechGenix.com» $InactiveDaysNow = 90 $time = (Get-Date).Adddays(-($InactiveDaysNow)) $CompsInactiveCount=Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -ResultPageSize 2000 -resultSetSize $ null -Server $ThisDomain -Properties Name,OperatingSystem,SamAccountName,DistinguishedName $CompsInactiveCount

Выполнение приведенных выше команд PowerShell предоставит вам список неактивных учетных записей компьютеров из домена, указанного в переменной «$ ThisDomain». Если вы хотите ограничить свой запрос определенным организационным подразделением, вам потребуется использовать параметр «-SearchBase», как это отражено в сценарии PowerShell ниже:

$ThisDomain = «TechGenix.com» $InactiveDaysNow = 90 $time = (Get-Date).Adddays(-($InactiveDaysNow)) $CompsInactiveCount=Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -ResultPageSize 2000 -resultSetSize $ null -Server $ThisDomain –SearchBase «OU=Test1, DC=TechGenix,DC=Com» -Properties Name,OperatingSystem,SamAccountName,DistinguishedName $CompsInactiveCount

Примечание. Приведенные выше команды PowerShell можно использовать только для одного домена Active Directory. Если вы хотите использовать несколько доменов, вам потребуется создать файл, содержащий доменные имена Active Directory, и использовать цикл ForEach для обработки всех доменов один за другим. Вот скрипт PowerShell, который проверяет все домены Active Directory, указанные в C:TempADDomains.CSV:

$DomFile = "C:TempADDomains.CSV" ForEach ($ThisDomain в GC $DomFile) { $InactiveDaysNow = 90 $time = (Get-Date).Adddays(-($InactiveDaysNow)) $CompsInactiveCount=Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -ResultPageSize 2000 -resultSetSize $null -Server $ThisDomain -Properties Name,OperatingSystem,SamAccountName,DistinguishedName $CompsInactiveCount }

Перенос устаревших аккаунтов в организационное подразделение

Для перемещения устаревших учетных записей необходимо использовать командлет PowerShell Move-ADObject. Если вам нужно переместить конкретную учетную запись компьютера из одного подразделения в другое, вам потребуется исходное отличительное имя учетной записи компьютера и целевое отличительное имя организационного подразделения. Например, чтобы переместить компьютер с именем Computer1 в другое подразделение в том же домене, сработает следующая команда PowerShell:

Move-ADObject –Identity (Get-ADComputer Computer1).ObjectGUID –TargetPath «OU=TestOU, DC=TechGenix, DC=Com»

Чтобы использовать Move-ADObject с более ранними командами PowerShell, которые мы использовали для извлечения устаревших учетных записей компьютеров, вы можете добавить Move-ADObject в конце команды PowerShell, как показано в командах ниже:

$DomFile = "C:TempADDomains.CSV" $DisabledCompsOU = "OU=DisabledComps, DC=TechGenix, DC=Com" ForEach ($ThisDomain в GC $DomFile) { $InactiveDaysNow = 90 $time = (Get-Date ).Adddays(-($InactiveDaysNow)) $CompsInactiveCount=Get-ADComputer -Filter {LastLogonTimeStamp -lt $time} -ResultPageSize 2000 -resultSetSize $null -Server $ThisDomain | Move-ADObject –TargetPath $DisabledCompsOU $CompsInactiveCount }

В сценарии вам нужно будет изменить следующие элементы, чтобы убедиться, что сценарий можно использовать в вашей производственной среде:

  • Измените путь организационного подразделения, в которое будут перемещены устаревшие учетные записи компьютеров. Вам нужно будет изменить переменную «$ DisabledCompsOU» в приведенном выше скрипте.
  • Введите имена доменов Active Directory в C:TempADDomains.CSV, чтобы сценарий мог обрабатывать все домены Active Directory в лесу Active Directory.

Ossisto 365 предоставляет аналогичный бесплатный инструмент, который можно использовать для поиска устаревших учетных записей пользователей и компьютеров, а затем периодически перемещать их в определенное организационное подразделение.

Мощный командлет PowerShell

Мы узнали, что командлет PowerShell Get-ADComputer можно использовать для извлечения устаревших учетных записей компьютеров из доменов Active Directory. Мы предоставили команды PowerShell, а также сценарии PowerShell для получения информации из нескольких доменов Active Directory. Мы также узнали, как переместить устаревшие учетные записи компьютеров в определенную организационную единицу с помощью командлета PowerShell Move-ADObject.