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