Перейти к содержимому

Получение списка компьютеров с Get-ADComputer в Powershell

Так же как и с получением списка пользователей AD с Get-ADUser с помощью Powershell мы можем вернуть список компьютеров. Этот список может быть отфильтрован исключая или включая отключенные учетные записи, по-определенному OU, экспортированы в CSV и многое другое. Эти примеры, а так же множество других, вы можете увидеть в статье ниже.

Получение компьютеров

Команда, которая вернет список всех компьютеров в домене следующая:

Команда точно выполнится на домен контроллере, так как все поддерживаемые серверные версии ОС устанавливают нужный модуль Powershell вместе с Active Directory (если вы только специально не отключали эту возможность). Если вы планируете выполнять команду с клиента на Windows 7 и выше, то такой модуль устанавливается вместе с RSAT (Remote Server Administration Tools). В отдельном случае может понадобится импортировать этот модуль следующей командой:

Вы так же можете проверить, что этот модуль у вас установлен следующей командой:

В остальных случаях стоит смотреть на явные запреты на выполнение скриптов Powershell и чтения Active Directory.

Что бы вернуть данные по одному пользователю используется ключ Identity:

Параметр Filter является обязательным. Вы можете вернуть дополнительные данные используя Properties:

Фильтрация вывода

У нас есть базовые свойства, которые фильтруются с помощью Filter. Это:

  • DistinguishedName
  • Enabled
  • ObjectClass
  • ObjectGUID
  • SamAccountName
  • SID
  • UserPrincipalName

И ряд свойств, которые возвращаются с параметром Properties. Их можно фильтровать через дополнительные условия (конвейер, where-object, циклы). Имена этих свойств можно вернуть так:

Использование Filter

Если вы планируете получить информацию по определенному доменному компьютеру, то вам нужно добавить условие. В примере ниже я возвращаю информацию только по компьютеру у которого имя равно «AD1»:

Если нужно найти только компьютеры, которые содержат в имени определенные значения, то нужно использовать -like вместо -eq . В моем примере я ищу все компьютеры содержащие в имени «CL» (регистр не учитывается).

Знаки * говорят, что в этих местах может быть еще текст. Такое написание «C*L» соответствовало бы логике: строка начинается с буквы «C», затем может быть еще текст завершающийся на «L».  

Использование Properties

Свойства возвращаемые через ключ Properties можно фильтровать двумя способами.

Первый — указывать их явно. Например вы хотите вернуть список с датами создания учетных записей компьютеров домена, которые хранит свойство «Created». Это можно сделать так:

  Указать больше свойств можно через запятую. Например:

Так же можно фильтровать через команду where-object. На примере ниже я получаю компьютеры со всеми свойствами, но созданные до 31 декабря 2019 года:

Ограничить вывод определенными свойствами можно через Select:


 

Получение включенных и отключенных учетных записей

Используя свойства Enabled можно вернуть учетные записи активных и деактивированных записей. Так будут возвращены отключенные учетные записи:

Получение компьютеров из определенных OU

Для работы с организационными единицами есть параметр -SearchBase. Мой домен контроллер называется «domain.local», а организационная единица «Moscow», следовательно, заполненный параметр будет выглядеть так:

Вместе с командой это получится так:

Если у вас несколько доменов или OU, которые нужно посмотреть, можно использовать циклы и массивы:

Ограничение вывода

Если у вас очень большой AD, то вывод всех компьютеров может быть долгим. Вы можете изменить это ограничив вывод с помощью ResultSetSize. Так я выведу только одну запись:

Эскорт в CSV

Любой выведенный результат команды Get-ADComputer мы можем экспортировать в CSV. Для этого у нас есть командлет Export-CSV. На примере ниже я выгружаю информацию обо всех компьютеров домена в файл «C:adcomputers.csv»

Опубликовано вPowershell

Ваш комментарий будет первым

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

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