Поиск по сайту:

PowerShell: Мои 10 лучших команд для документирования и мониторинга Active Directory


В этом посте я хочу представить свои топ-10 команд для документирования и мониторинга службы доменов Active Directory.

Перечислите все контроллеры домена

Get-ADDomainController -Filter * | Format-List Name,Ipv4Address,IPv6Address,OperatingSystem

Перечислите все серверы глобального каталога

Get-ADDomainController -Discover -Service "GlobalCatalog"

Перечислите все роли мастера операций (FSMO)

Роли по всему лесу

Get-ADForest | Format-Table SchemaMaster,DomainNamingmaster

Роли по всему домену

Get-ADDomain | Format-List pdc*,infra*,rid*

Я должен признаться: netdom query fsmo намного проще 😉

netdom query fsmo

Ссылка: Роли FSMO Active Directory (оперативный мастер)

Мониторинг входов в Active Directory

Успешные входы

Я ищу логины пользователя «Петра». Обратите внимание, что нужно просмотреть все журналы событий на всех контроллерах домена. Если вы не говорите по-немецки, не дайте себя запутать немецким скриншотом. Обратите внимание на тип входа «Anmeldetyp». Значение - 2 - пользователь вошел в домен.

Get-EventLog -LogName Security -InstanceId 4624 | Where-Object Message -match "petra" | Format-Table TimeGenerated,Message -AutoSize -Wrap

Неудачные попытки входа

Get-EventLog -LogName Security -InstanceId 4771 | Where-Object Message -match "petra" | Format-Table TimeGenerated,Message -AutoSize -Wrap

Обратите внимание на код ошибки 0x18. Пользователь ввел неправильный пароль.

Дополнительная информация о входах в активный каталог в моем немецком блоге: Мониторинг входов в Active Directory

Найдите сиротские учетные записи компьютеров

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

Get-ADComputer -Filter * -Properties operatingsystem,lastlogondate | Where-Object {($_.operatingsystem -notlike "*Server*") -and ($_.lastlogondate -le ((Get-Date).adddays(-365)))} | Sort-Object Lastlogondate | Format-Table Name,Lastlogondate

Ссылка (немецкий): Active Directory: Найти неактивные (брошенные) учетные записи компьютеров

Найдите сиротские учетные записи пользователей

Чтобы найти все учетные записи пользователей, которые не входили в домен в течение года, выполните

Get-ADUser -Filter * -Properties LastLogonDate | ? {$_.lastlogondate -ne $null -and $_.lastlogondate -le ((get-date).adddays(-365))} | Format-List Name,LastLogonDate

Ссылка (немецкий): Active Directory: Поиск неактивных пользователей с помощью Get-ADUser

Найдите сиротские групповые политики

Чтобы найти все групповую политику, которая не связана с организационной единицей, выполните

Get-GPO -All | % {
 If ( $_ | Get-GPOReport -ReportType XML | Select-String -NotMatch "<LinksTo>" ) {
 Write-Host $_.DisplayName, $_.CreationTime, $_.Modificationtime 
 }
 }

Ссылка (немецкий): Active Directory: Поиск неактивных, не связанных групповых политик

Найдите все контакты Active Directory

Get-ADObject -Filter 'objectClass -eq "contact"' -Properties CN | Format-List CN

Ссылка: PowerShell: Поиск контактов Active Directory

Список аппаратной информации компьютеров, присоединённых к домену

Получите список всех компьютеров, используя Set-Content или переменную.

(Get-ADComputer -Filter *).Name | Set-Content C:\Computers.txt

Затем выполните Get-WMIObject и сохраните вывод в удобочитаемом виде.

Get-WMIObject -ComputerName (Get-Content C:\Computers.txt) -Class Win32_Computersystem -ErrorAction SilentlyContinue | ConvertTo-Html Name,TotalPhysicalMemory -Title (Get-Date) -Body "RAM Liste aller Computer" | Set-Content C:\Ram.htm

Ссылка (немецкий): WMI: Получить и сохранить аппаратную конфигурацию всех доменных компьютеров

Поиск пользователей Active Sync

Это справедливо, что это связано с Exchange. Но Exchange связан с Active Directory. Давайте поищем пользователей Exchange Active Sync.

Get-CASMailbox -Filter {hasactivesyncdevicepartnership -eq $true -and -not displayname -like "CAS_*"} | Get-Mailbox | Format-List name

Ссылка (немецкий): Показать пользователей Exchange Active Sync

Дополнительная информация

Если вы хотите установить контроллер домена с помощью PowerShell, ознакомьтесь с моей статьей PowerShell: Как установить контроллер домена с помощью Server Core.