Инвентаризация контроллеров домена с помощью 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 и обрабатывается с помощью операции “Текст по столбцам”.

hostname site operatingsystem ServicePack vendor model CPU, count RAM/GB
DC1 site1 Windows Server 2008 R2 Standard Service Pack 1 Hewlett-Packard HP 500B Microtower 2 2
DC2 site2 Windows Server 2008 R2 Standard Service Pack 1 HP ProLiant DL360 G5 4 4
DC3 site3 Windows Server 2008 R2 Standard Service Pack 1 HP ProLiant DL380 G5 4 4
DC4 site4 Windows Server 2012 R2 Standard Microsoft Corporation Virtual Machine 8 8
DC5 site5 Windows Server 2008 R2 Standard Service Pack 1 VMware, Inc. VMware Virtual Platform 4 8
Запись опубликована в рубрике 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 *}

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

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