===== Запросы информации об объектах AD =====
=== Выгрузить имена всех компьютеров в csv-файл ===
Get-ADComputer -Filter * | Select-Object name | Export-Csv c:\computers.csv
=== Разделить имена компьютеров запятой и выгрузить одной строкой ===
(Get-ADComputer -filter * | Select-Object name).name -join ","
или выгрузить все компьютеры с их ОС:
Get-ADComputer -filter * -Properties * | Select Name, OperatingSystem
С нормальной кодировкой, упорядоченные по операционным системам и датой обновления машинного аккаунта:
Get-ADComputer -filter * -Properties * | Select Name, OperatingSystem, passwordlastset | sort-object OperatingSystem | Export-Csv c:\reports\computers.csv -Encoding UTF8
=== Выгрузить имена всех пользователей домена в csv-файл в правильной кодировке ===
Get-ADUser -Filter * | Select-Object name | Export-Csv c:\computers.csv -Encoding UTF8
=== Выгрузить все учётные записи в AD, которые включены в данный момент. В CSV-файл с нормальной кодировкой===
Get-ADUser -Filter "enabled -eq 'true'" | Select-Object Name, SamAccountName | Export-Csv -Encoding UTF8 C:\Users\e.kudryashov\Desktop\ad_users.csv
=== Выгрузить все учётные записи в AD, которые включены в данный момент, отсортировать их по дате создания ===
Командлет выгрузит имя и даты создания пользователей.
Get-ADUser -Filter {Enabled -eq $true} -property name, created | Select-Object -property name, created | Sort-Object -property created
=== Выгрузить список пользователей из конкретной OU с сортировкой в CSV-файл ===
Get-ADUser -SearchBase "OU=unit,OU=domain,DC=domain,DC=domain,DC=ru" -Filter * | Select-Object SamAccountName | Sort -Property SamAccountName | Export-Csv c:\users_samname.csv
----
=== Скопировать членов одной группы в другую ===
Get-ADGroupMember -Identity "source_group" | ForEach-Object {Add-ADGroupMember -Identity "destination_group" -Members $_.distinguishedName}
----
=== Запрос всех доменных администраторов с явным указанием домена ===
Запросим всех членов группы //Domain Admins// для указанного домена, профильтровав вывод с тем, чтобы выводились только включенные активные аккаунты. Запрос выполним с указанием напрямую контроллера домена из запрашиваемого домена.
$groupname = "Domain Admins"
$users = Get-ADGroupMember -Server dc.domain.local -Identity $groupname | ? {$_.objectclass -eq "user"}
foreach ($activeusers in $users) { Get-ADUser -Server dc.domain.local -Identity $activeusers | ? {$_.enabled -eq $true} | select Name, SamAccountName, UserPrincipalName, Enabled}
----
=== Посчитать юзеров из конкретного OU ===
(Get-ADUser -SearchBase "OU=partnercmdsu,DC=arasaka,DC=local" -filter *).Count
{{tag>ActiveDirectory Microsoft PowerShell}}