Зачастую возникает необходимость решения каких-то небольших задач по администрированию Windows, для которых удобно применить скрипты PowerShell. В данной статье будут приведены примеры таких скриптов, используемых для различных задач в рамках инфраструктуры заказчика.
Для получения списка пользователей с нужными полями, и экспорта его в csv-файл:
Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\mail_list.csv
где:
Surname - фамилия
GivenName - имя
mail — адрес e-mail
Помещает результат в C:\Users\%username%\AppData\Local\Temp\, можно задать другой путь.
Если необходимо настроить параметры вывода, можно исключить какие-то поля(например, вывести только mail)
Разблокировка учетной записи:
Если пользователь заблокировал свою УЗ, вводя неверный пароль, достаточно ввести следующую команду:
PS C:\> Unlock-ADAccount username
где username -имя пользователя
Удаление учетной записи:
PS C:\> Remove-ADUser username -whatif
What if: Performing operation "Remove" on Target
"CN=username,OU=employee,OU=internal,DC=name,DC=local".
Поиск пустых групп:
PS C:\> get-adgroup -filter * | where {-Not
($_ | get-adgroupmember)} | Select Name
Выведение списка пользователей конкретной группы(в данном случае — Domain Admins):
PS C:\> Get-ADGroupMember "Domain Admins"
Также по аналогии с приведенными выше примерами можно экспортировать списки пользователей в файл.
В случае, если группа содержит другие вложенные группы и нужно вывести и их членов тоже, нужно использовать параметр -Recursive
PS C:\> Get-ADGroupMember "All Users"
-Recursive | Select DistinguishedName
Список всех активных (не заблокированных) учетных записей в AD:
Get-ADUser -Filter {Enabled -eq "True"} | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table
в случае, если необходимо вывести их с почтовыми адресами:
Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table
В дальнейшем будут приведены другие примеры полезных скриптов для повседневных задач.