Выборка компьютеров из домена Active Directory

На работе после отпуска поставили задачу сделать отчет. Кроме всего прочего необходимо сделать выборку компов и пользователей за ними работающих. Плюс еще некоторая инфа об ОС. Все бы ничего, но параметр в AD ManagedBy содержит много лишних букв. В итоге нашел решение. Вот команда из PowerShell:

Get-ADComputer -Filter * -Properties Name,ManagedBy,OperatingSystem,operatingSystemServicePack,operatingSystemVersion | FT Name,@{l=»ManagedBy»;e={(Get-QADUser $_.managedby).name}},OperatingSystem,operatingSystemServicePack,operatingSystemVersion

Кстати первое мое использование PS. До этого обходился командной строкой и GUI.

И вот еще что. Это конечно все красиво будет на экране. Но нам нужен Excel. И еще OU. Тут надо команду переделать, чтоб было так:

Get-ADComputer -Filter * -Properties Name,DistinguishedName,ManagedBy,OperatingSystem,operatingSystemServicePack,operatingSystemVersion | Select Name,@{N=’OU’;E={($Split=($_.distinguishedname -split «(,)»))[2..($Split.Length-7)] -join »}},@{l=»ManagedBy»;e={(Get-ADUser $_.managedby).name}},OperatingSystem,operatingSystemServicePack,operatingSystemVersion | Export-Csv -NoType -Encoding Unicode c:\1.csv

Еще вот какое дополнение. Необходимо добавить столбец с отделом. Результирующий скрипт выглядит так:

Import-Module ActiveDirectory
Get-ADComputer -Filter * -Properties Name,DistinguishedName,ManagedBy,OperatingSystem,operatingSystemServicePack,operatingSystemVersion | Select Name,@{N=’OU’;E={($Split=($_.distinguishedname -split «(,)»))[2..($Split.Length-7)] -join »}},@{l=»ManagedBy»;e={(Get-ADUser $_.managedby).name}},@{l=»Department»;e={(Get-ADUser -Properties Department $_.managedby).department}},OperatingSystem,operatingSystemServicePack,operatingSystemVersion | Export-Csv -NoType -Encoding Unicode c:\1.csv

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *