Работа PowerShell с Active Directory. Продолжение.
Продолжаем изучение командлетов для работы PowerShell с Active Directory начатое
ранее. В новых ОС Windows Server 2008R2 и Windows 7 доступна группа командлетов Active Directory Module for Windows PowerShell.
Проверить доступны ли модули:
PS> Get-Module -ListAvailable ModuleType Name ExportedCommands ---------- ---- ---------------- Manifest ActiveDirectory {} Manifest AppLocker {} |
Если в списке модуля нет, то чтобы его установить в Windows 7, следует инсталлировать RSAT (Microsoft Remote Server Administration Tools, technet.microsoft.com/ru-ru/library/cc730825.aspx) после чего их можно загрузить прямо из меню «Программы и компоненты» (Turn Windows Features on or off — Remote Server Administration Tools — Role Administration Tools — AD DS and LDS Tools и выбираем модуль Active Directory PowerShell snap-in).
На сервере Windows Server 2008 R2 нужный компонент ставится проще:
PS> Add-WindowsFeature RSAT-AD-PowerShell –IncludeAllSubFeature |
Теперь импорртируем:
PS> Import-Module ActiveDirectory |
Чтобы просмотреть настройки домена используем командлет Get-ADDomain.
Теперь контроллер домена:
PS> Get-ADDomainController |
Из вывода видно в качестве операционной системы у нас используется Windows Server 2008 R2, а контроллер домена является Global Catalog-ом. Получим список членов группы Administrators:
PS> $group = Get-AdGroup Administrators Get-ADUser -Filter {MemberOf -recursivematch $group.DistinguishedName} |
Теперь можем узнать когда пользователь Administrator в последний раз менял пароль.
PS> Get-ADUser Administrator -properties PasswordLastSet |
Для того что бы детально изучить список найденных серверов, берем первый сервер из списка и вводим:
PS> Get-ADComputer -LDAPFilter "(name=SRV01)" -properties * |
Посмотрим список SPN (servicePrincipalName).
PS> (Get-ADComputer -LDAPFilter "(name=SRV-01)" -properties *).servicePrincipalName |
Теперь посмотрим настройки DefaultDomainPasswordPolicy:
PS> Get-ADDefaultDomainPasswordPolicy |
Смотрим список учетных записей у которых пароли еще не истекли:
PS> Get-ADUser -filter {PasswordNeverExpires -eq $True -AND Enabled -eq $True} | Select Distinguishedname |
Можно уточнить параметр:
PS> Get-ADUser -filter {PasswordNeverExpires -eq $True -AND Enabled -eq $True} -properties PasswordLastSet | Sort PasswordLastSet | Select Distinguishedname,PasswordLastSet |
Теперь наоборот учетные записи срок действия паролей для которых в настоящее время уже истек:
PS> Get-ADUser -filter {Enabled -eq $True} -properties passwordExpired | where {$_.PasswordExpired} | measure-object |
Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.
Со списком членов группы как-то сложно… есть отдельный командлет Get-ADGroupMember