Инвентаризация контроллеров домена с помощью Powershell

Как вы уже поняли, моим хобби является написание скриптов на Powershell для Active Directory 🙂

В этот раз я поделюсь скриптом, который составляет табличку по всем доменным контроллерам, в которой содержится сайт AD, в которой содержится сайт, операционная система с сервис-паком, производитель и модель сервера, количество процессоров и памяти.

Из полезного — еще можно выдернуть наличие на контроллере домена роли глобального каталога, FSMO-ролей, RODC или нет. Плюс убрать саму привязку скрипта к модулю AD for Powershell. Но атрибута «глобальный каталог» или RODC в выводе Get-ADDomainController я не увидел, а FSMO-роли возвращаются в виде массива значений, поэтому в экспорт CSV не попадают.

Get-ADDomainController -Filter * | select hostname, site, operatingsystem, OperatingSystemServicePack, @{name="vendor";expression={(gwmi Win32_ComputerSystem -ComputerName $_.hostname).Manufacturer}}, @{name="model";expression={(gwmi Win32_ComputerSystem -ComputerName $_.hostname).model}}, @{name="CPU, count";expression={(gwmi Win32_ComputerSystem -ComputerName $_.hostname).NumberOfLogicalProcessors}}, @{name="RAM/GB";expression={[math]::round((gwmi Win32_ComputerSystem -ComputerName $_.hostname).Totalphysicalmemory/1GB)}} | sort hostname | Export-
Csv -NoTypeInformation C:\scripts\dclist.csv

Полученный CSV-файл открывается в Excel и обрабатывается с помощью операции «Текст по столбцам».

hostnamesiteoperatingsystemServicePackvendormodelCPU, countRAM/GB
DC1site1Windows Server 2008 R2 StandardService Pack 1Hewlett-PackardHP 500B Microtower22
DC2site1Windows Server 2008 R2 StandardService Pack 1HPProLiant DL360 G544
DC3site2Windows Server 2008 R2 StandardService Pack 1HPProLiant DL380 G544
DC4site3Windows Server 2012 R2 StandardMicrosoft CorporationVirtual Machine88
DC5site4Windows Server 2012 R2 StandardVMware, Inc.VMware Virtual Platform48
Запись опубликована в рубрике Domain Controller, Microsoft с метками . Добавьте в закладки постоянную ссылку.

6 комментариев на «Инвентаризация контроллеров домена с помощью Powershell»

  1. Mr.Aloof говорит:

    Для RODC у Get-ADDomainController есть IsReadOnly. Можно его в фильтре использовать.
    Глобальный каталог можно из Get-ADForest выдернуть.
    FSMO-роли — в чем сложность обойти массив foreach?

  2. A.Vakhitov говорит:

    На самом деле, для RODC есть свойство IsReadOnly, для глобального каталога — IsGlobalCatalog. Смотрел невнимательно.
    Добавляем эти свойства в Select в виде «select hostname, IsReadOnly, IsGlobalCatalog, …»

    Сложностей в обходе массива foreach не было — был вопрос в затрачиваемом времени. Мне хватило вывода утилиты netdom query fsmo.

  3. diz говорит:

    Андрюха, я тебе не завидую :)) тебе скриптами приходится контроллеры домена инвентаризировать :))

  4. Андрей Вахитов говорит:

    Знаешь, мне это нравится куда больше, чем заря моей карьеры и два доменных контроллера, стоящие в моем кабинете 🙂

  5. Макс говорит:

    а как бы туда еще поддомены добавить? 🙂 желательно с полным именем))))

  6. Андрей Вахитов говорит:

    Макс, как-то так
    Вместо «Get-ADDomainController -Filter *» используйте
    (Get-ADForest).Domains | % { Get-ADDomainController -Discover -DomainName $_ } | % { Get-ADDomainController -server $_.Name -filter *}

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

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