Каждому удобны те инструменты, с которыми он привык работать и удовлетворяют его потребности. Но мне приглянулся вот такой скриптовый язык как PowerShell. Довольно продвинутый инструментов для выполнения повседневных задач администрирования и, немного, отчётности и инвентаризации. Пока многие его возможности мною не изучены, но иногда пишу быстрые однострочные команды, выбирающие всю необходимую мне информацию.
Ввиду того, что часто эти операции одноразовые, мною они не были сохранены для возможности повторного использования. Надеюсь, и буду стараться, выкладывать сюда такие однострочные (а может быть и больше) помощники. Как предварительное требование, у Вас уже должна быть установлена поддержка работы PowerShell с Active Directory. Может быть она поставляется отдельно, но у меня она входила в пакет средств удалённого администрирования сервера для Windows 7 (KB958830). Не забудьте включить этот компонент в оснастке "Программы и компоненты" -> "Включение или отключение компонентов Windows":
А дальше просто открываете консоль PowerShell и пишите что хотите =)
Вот что у меня сохранилось.
Import-Module ActiveDirectory # Незаблокированные ПК с установленной Windows XP Get-ADComputer -Filter '(operatingSystem -eq "Windows XP Professional") -and (Enabled -eq "True")' -Properties * -SearchBase "ou=XXXX,dc=XXXX,dc=XXXX,dc=XXXX" -Server "DomainController" | Select-Object -Property Name,@{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}} | Sort-Object -Property Name | Export-Csv 'd:\out.csv' -UseCulture -NoTypeInformation # Все незаблокированные компьютеры Get-ADComputer -Filter '(Enabled -eq "True")' -Properties * -SearchBase "ou=XXXX,dc=XXXX,dc=XXXX,dc=XXXX" -Server "DomainController" | Select-Object -Property Name,@{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}} | Sort-Object -Property Name | Export-Csv 'd:\out.csv' -UseCulture -NoTypeInformation
# Список пользователей в контейнере. import-module activedirectory # Незаблокированные учётные записи $user_list = Get-ADUser -Server "DomainController" -SearchBase "OU=XXXX,OU=XXXX,OU=XXXX,DC=XXXX,DC=XXXX,DC=XXXX" -Filter '(Enabled -eq "True")' | Select-Object -Property Name # Все учётные записи $user_list = Get-ADUser -Server "DomainController" -SearchBase "OU=XXXX,OU=XXXX,OU=XXXX,DC=XXXX,DC=XXXX,DC=XXXX" -Filter * | Select-Object -Property Name foreach ($user in $user_list){ Write-Host $user.Name } Write-Host "" Write-Host "Количество пользователей: " $user_list.Count
Комментариев нет:
Отправить комментарий
Уважаемый комментатор, пишите грамотно.
С благодарностью, автор блога.