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

Get adcomputer не распознано как имя командлета

  • автор:

Get-ADComputer: примеры вывода данных о компьютерах Active Directory

Get-ADComputer

Настройка серверов windows и linux

Добры день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами разобрали ситуацию, когда не открывается пуск Windows 10, в итоге было рассмотрено свыше 8 методов по устранению. Идем вперед и сегодня я хочу вас научить получать информацию, о компьютерах Active Directory через PowerShell. Мы разберем огромное количество сценариев применения командлета Get-ADComputer с ключами, фильтрами и различными конструкциями.

За что отвечает командлет Get-ADComputer?

Когда ваша инфраструктура предприятия построена на базе Active Directory, то вы рано или поздно придете к задаче по получению различных данных о учетных записях компьютеров, проще говоря по серверам и рабочим станциям. PowerShell для этой задачи подходит лучше всего, так как он быстрее, позволяет автоматизацию и многое другое. Для этого в PowerShell есть командлет Get-ADComputer.

Простой пример использования Get-ADComputer, предположим, что вам нужно получить:

  • Полный список учетных записей компьютеров в AD или конкретном организационном подразделении (OU)
  • Получить информацию по атрибутам компьютера и сделать по ним выгрузку
  • Найти все неактивные компьютера
  • Найти все новые компьютеры в Active Directory
  • Найти все выключенные компьютеры
  • Поиск компьютеров по операционной системе
  • Многое другое

Get-ADComputer — Это наилучший инструмент по получению любых сведений, о компьютерах в Active Directory

Как работать с командлетом Get-ADComputer

Для того, чтобы начать работать с командлетом Get-ADComputer, вы должны:

  • Либо это делать на контроллере домена, где уже есть все нужные оснастки
  • Либо вы должны установить RSAT в случае с клиентскими ОС, например на Windows 11 или установить модуль в диспетчере серверов на Windows Server

Установка модуля Active Directory на клиентских ОС

Add-WindowsCapability -online -Name «Rsat.ActiveDirectory.DS-LDS.Tools»

Установка модуля activedirectory

и далее в оснастке PowerShell введите:

Import-Module activedirectory

Установка модуля Active Directory на Windows Server

Когда на сервере нет модуля Active Directory, то при попытке его импортировать вы получите ошибку:

Import-Module : Указанный модуль «activedirectory» не был загружен, так как ни в одном из каталогов модулей не был обнаружен действительный файл модуля.

Import-Module : Указанный модуль

Чтобы это поправить введите с оснастке PowerShell:

Import-Module ServerManager
Add-WindowsFeature -Name «RSAT-AD-PowerShell» –IncludeAllSubFeature

Модуль Active Directory для Windows

Либо вы можете это сделать через графический интерфейс оснастки «Диспетчер серверов«.

Управление — Добавить роли и компоненты — Установка ролей или компонентов — Далее — Далее — Средства удаленного администрирования серверов — Средства администрирования ролей — Средства AD DS и AD LDS — Модуль Active Directory для Windows PowerShell (Remote Server Administration Tools — Role Administration Tools — AD DS and AD LDS Tools — Active Directory module for Windows powerShell)

Установка Модуля Active Directory для Windows.png

Параметры фильтров Get-ADComputer

Для поиска и извлечения нескольких компьютеров используйте параметры Filter или LDAPFilter. Параметр Filter является общим параметром среди многих команд ActiveDirectory. Он позволяет указать условия, которым должна соответствовать учетная запись для ее возврата. Если Identity параметр не используется, необходимо использовать Filter параметр.

Примеры использования командлета Get-ADComputer

Если вы впервые работаете с командами Get-ADComputer, и под рукой нет готовых примером, то вы можете их посмотреть в справке. Для этого введите команду:

Get-Help Get-ADComputer

Хочу напомнить, что запрашивать данные, о компьютерах Active Directory через модуль AD for Powershell может любой пользователь домена, если ему это явным образом не запрещали делать

Вызов справки Get-ADComputer

В первом примере мы с вами получим базовую информацию о конкретном доменном компьютере или сервере. в моем примере это будет компьютер с именем 5ORG. Вводим команду:

Get-ADComputer -Identity 5ORG

DistinguishedName : CN=5ORG,OU=Windows 11, OU=Компьютеры,OU=Оргструктура, DC=root,DC=pyatilistnik,DC=org
DNSHostName : 5org.root.pyatilistnik.org
Enabled : True
Name : 5ORG
ObjectClass : computer
ObjectGUID : ed7d9f38-7be0-4e81-bb8b-c17d445a35a8
SamAccountName : 5ORG$
SID : S-1-5-21-4284852150-1823218374-53464103-2106
UserPrincipalName :

Get-ADComputer получение данных о конкретном компьютере

Согласитесь, что этого мало и нужно больше информации. Попросим Get-ADComputer вывести все свойства, которые есть у объекта компьютер. Для этого добавляем ключ -Properties. Вводим команду:

Get-ADComputer -Identity 5ORG -Properties *

«*» — Означает, что нужно вывести все.

Из полезного тут:

Get-ADComputer вывод всех свойств компьютера

  • lastLogon
  • LastLogonDate — Время последнего входа в сеть
  • OperatingSystem — Версия ОС
  • whenCreated — Когда создан
  • Многое другое

AD computer properties

Как видите свойств много, давайте я покажу вам как вы можете сами выбирать те свойства которые вы хотите выводить. Давайте я выведу дату создания, время последнего входа, имя компьютера, его статус (активный/отключенный) и Ip-адрес. Для этого:

Get-ADComputer -identity 5ORG -Properties * | FT Name, whenCreated, OperatingSystem, LastLogonDate, Enable -Autosize

Get-ADComputer вывод нужных свойств

Иногда бывает ситуация, что нужно обратиться к определенному контроллеру домена с запросом, для этого есть ключ -Server:

Get-ADComputer -Server dc01.root.pyatilistnik.org -identity 5ORG -Properties * | FT Name, whenCreated, OperatingSystem, LastLogonDate, Enable -Autosize

Как видите я обратился к двум разным контроллерам домена. Данная возможность будет вам весьма полезна, когда у вас в лесу несколько доменов Active Directory.

Get-ADComputer обращение к нужному DC

Фильтры в Get-ADComputer

Теперь предположим, что вам необходимо получить информацию, о дате создания, времени входа, версии ОС, имени и статусу для всех компьютеров в домене. Тут мы уже будем использовать фильтры. Фильтры нужны для массовых запросов.

  • Как посмотреть все компьютеры в домене со свойствами через использование фильтров:

Get-ADComputer -Filter * -Properties * | FT

Get-ADComputer -Filter * -Properties Name, whenCreated, OperatingSystem, LastLogonDate | FT Name, whenCreated, OperatingSystem, LastLogonDate, Enable -Autosize

Get-ADComputer -Filter * -Properties * | FT Name, whenCreated, OperatingSystem, LastLogonDate, Enable -Autosize

Get-ADComputer использование фильтров

  • Чтобы ограничить вывод определенным количеством элементов, воспользуйтесь параметром -ResultSetSize. В примере будет выведено 3 элемента.

Get-ADComputer -Filter * -ResultSetSize 3 -Properties * | FT Name, whenCreated, OperatingSystem, LastLogonDate, Enable -Autosize

  • Запросим в фильтре точное совпадение с именем

Get-ADComputer -Filter ‘Name -eq «5org»‘ | FT

  • Давайте теперь скажем. что покажи мне компьютеры, где в имени есть DC

Get-ADComputer -Filter ‘Name -like «*dc*»‘ | FT

Get-ADComputer выполнение разных фильтров

  • Давайте теперь скажем. что покажи мне компьютеры, где в имени есть DC и нужными свойствами Name, IPv4Address, Enabled, DNSHostName

Get-ADComputer -Filter ‘Name -like «*dc*»‘ -Properties Name, IPv4Address, DNSHostName | FT Name, IPv4Address, DNSHostName, Enabled

Get-ADComputer выполнение разных фильтров

  • Еще вариант вывода информации, о всех компьютерах по разным критериям и сортировкой по имени.

Get-ADComputer -Filter ‘Name -like «*dc*»‘ -Properties Name, IPv4Address, DNSHostName | Select Name, IPv4Address, DNSHostName, Enabled | Sort Name

Get-ADComputer -Filter * -Properties * | FT Name, whenCreated, OperatingSystem, LastLogonDate, Enable -Autosize

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

  • Выводим список всех компьютеров в домене у которых операционная система Windows Server, так же возьмем описание lastLogon, whenCreated, DistinguishedName и чтобы учетная запись компьютера была активной.

Get-ADComputer вывод всех компьютеров с операционной системой Windows Server

  • Как вывести все компьютеры без виртуальных имен. таких как роли DFS или инстансы в SQL, они часто имеют в поле описания «Failover cluster virtual network name account».
  • Если нужно обратиться к конкретному OU, то можно использовать ключ -SearchBase.

Делая поиск по конкретному OU вы можете использовать дополнительные параметры. -SearchScope 1, который означает, что нужно искать только в корневом разделе. Параметр -SearchScope 2 означает рекурсивный поиск компьютеров во всех вложенных OU

Get-ADComputer экспортируем полученную информацию в CSV файл

  • Еще приведу примеры фильтров. Давайте выведем все компьютеры у которых операционная система не Windows 11 10.0 (22000).

Get-ADComputer -Filter ‘OperatingSystemVersion -ne «10.0 (22000)»‘ | Select Name, DistinguishedName | FT -AutoSize

Get-ADComputer фильтрация по компьютерам имеющим альтернативную ОС

  • Теперь давайте найдем все компьютеры, которые не появлялись в сети более 45 календарных дней. Для этого такая конструкция:

# Задаем переменную, отнимающую от текущей даты 45 дней
$Date = (Get-Date).AddDays(-45)
Get-ADComputer -Properties LastLogonDate -Filter -gt $date> | Sort LastLogonDate (или | Sort Name) | FT Name, LastLogonDate -Autosize

Get-ADComputer поиск всех компьютеров не появлявшихся в сети более 45 дней

  • Далее вы данный список можете полученных компьютеров можете заблокировать, это нормально и позволит держать базу Active Directory в надлежащем состоянии.

$Date = (Get-Date).AddDays(-45)
Get-ADComputer -Properties LastLogonDate -Filter | Sort LastLogonDate | Set-ADComputer -Enabled $false -whatif

Обратите внимание, что я для начала добавил ключ -whatif, который позволит посмотреть вывод команды без реального внесения изменений, если все правильно отработало, то смело можете его убирать

Get-ADComputer блокировка неактивных компьютеров

  • Получаем список компьютеров имеющие изменения на 15 мая 2022

Get-ADComputer -Filter ‘Modified -ge «15-05-2022 12:00:00″‘ | FT Name

  • Как вывести список компьютеров с нужными или всеми свойствами, созданными до 1 мая 2022 года.

Get-ADComputer -Filter * -Properties * | `
Where-Object -Property Created -LT (Get-Date -Year 2022 -Month 05 -Day 01) | FT Name

Не забываем, что вы можете сортировать выводить любые свойства:

$date = (Get-Date -Year 2021 -Month 12 -Day 31)
Get-ADComputer -Filter * -Properties * | `
Where-Object -Property Created -LT $date| `
select Name, Created | ft

Символ «`» — Делает перевод строки на новую

Get-ADComputer вывод компьютеров созданных ранее определенной даты

  • Теперь давайте разберемся, как вывести все отключенные записи компьютеров в домене, сразу оговорюсь, что как я и показывал выше вы можете это делать для конкретной OU или домена, указывая нужный сервер для запроса.

Get-ADComputer -Filter | FT Name

  • Теперь логично, что вы хотели бы иметь понимание, сколько вообще активных компьютеров в домене.

(Get-ADComputer -Filter ).count

  • Можно это сделать в определенной OU

(Get-ADComputer -SearchBase «OU=Компьютеры,OU=Оргструктура, DC=root,DC=pyatilistnik,DC=org» -Filter ).count | ft

  • Можно вывести количество компьютеров с Windows 10 например.

(Get-ADComputer -Filter ).count

  • Чтобы найти все компьютеры имена которых начинаются с W10.

Get-ADComputer -Filter -Properties * | FT Name,DNSHostName,IPv4Address

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

  • Получить список компьютеров созданных после 1 января 2020

Get-ADComputer -Filter ‘Created -le «01-01-2020″‘ -Properties * | FT Name, Created

  • Получаем список компьютеров у которых операционная система не Windows Server 2016.

Get-ADComputer -Filter ‘OperatingSystem -notlike «*2016*»‘ -property * | FT Name,OperatingSystem

Get-ADComputer Получаем список компьютеров у которых операционная система не Windows Server 2016

  • Выводим компьютеры с Windows Server 2012 и Windows Server 2019

Get-ADComputer -Filter ‘OperatingSystem -like «*2012*» -or OperatingSystem -like «*2019*»‘ -property * | FT Name,OperatingSystem

Get-ADComputer Выводим компьютеры с Windows Server 2012 и Windows Server 2019

Популярные Похожие записи:
  • Get-ADUser и примеры использованияGet-ADUser и примеры использования
  • Скрипт получения новых компьютеров в Active Directory
  • Установка и управление модулями PowerShell
  • Как удалить sIDHistory у объектов Active Directory
  • Get-ADGroup: Управление группами Active DirectoryGet-ADGroup: Управление группами Active Directory
  • Ошибка активации 0xC004F034 на KMS сервере

Get adcomputer не распознано как имя командлета

Командлет Get-ADObject может не запускаться в Windows Server 2008 R2 , несмотря на то, что в документации Microsoft написано, что он присутсвует в данном дистрибутиве Windows.

При запуске Get-ADObject появляется ошибка:

Имя «Get-ADObject» не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку.

+ CategoryInfo : ObjectNotFound: (Get-ADObject:String) [], CommandNotFoundException

На самом деле этот командлет есть, и располагается он в инструменте «Active Directory Administration with Windows PowerShell» ( https://technet.microsoft.com/ru-RU/library/dd378937.aspx ). По опыту, данный инструмент нормально работает как минимум в Power Shell v.2.

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

После этой команды все командлеты для управления доменом станут доступны. Доступны они будут в текущем сеансе Windows Power Shell.

  • Как писать и как запускать скрипты PowerShell
  • Как перенести строку кода в скрипте Windows Power Shell
  • Как включить командлет Get-ADObject в Windows Power Shell (работа с объектами Active Directory)
  • Как узнать список установленных модулей Windows Power Shell
  • Как получить всю информацию о командлете в Windows Power Shell
  • Работа со строками в PowerShell
  • Кавычки в PowerShell
  • Как в PowerShell узнать список сервисов с их состоянием (Запущен, остановлен)
  • Обзор технологии Microsoft Windows PowerShell
  • Использование PowerShell в качестве интерактивной оболочки
  • Использование конвейеров в Windows PowerShell
  • Основы системы форматирования в Windows PowerShell
  • Основные командлеты Windows PowerShell
  • Windows Management Instrumentation (WMI) в PowerShell
  • Администрирование Active Directory в Power Shell
  • Скрипты PowerShell
  • Фоновые задания и задания удаленного типа в Power Shell
  • Администрирование Windows Server 2008 R2 через Power Shell
  • Написание скриптов Windows Power Shell (обзор языка)
  • Windows PowerShell: Создание сценариев (основы)
  • Поиск неиспользуемых аккаунтов пользователей и компьютеров в AD c помощью PowerShell
  • Список атрибутов (параметров), которые может вернуть командлет get-ADUser
  • Как в PowerShell отфильтровать вывод командлета

Get-ADGroupMember возвращает ошибку для локальной группы домена членам из удаленных лесов

Эта статья поможет устранить ошибку Get-ADGroupMember , которая возникает при выполнении командлета в сценарии, где группа имеет участника из удаленного леса.

Применяется к: Windows Server 2012 R2
Исходный номер базы знаний: 3171600

Симптомы

Предположим, что вы используете Get-ADGroupMember командлет для идентификации членов группы в доменные службы Active Directory (AD DS). Однако при выполнении командлета для локальной группы домена возвращается следующую ошибку:

Get-ADGroupMember -verbose -identity «CN=Test-Local1,OU=Test Accounts,DC=contoso,DC=com»
Get-ADGroupMember: произошла неуказанная ошибка
В строке:1 char:1
+ Get-ADGroupMember -verbose -identity «CN=Test-Local1,OU=Test Accounts,DC=contoso .
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (CN=Test-Local1. bertm-w7,DC=com:ADGroup) [Get-ADGroupMember], ADExceptionon + FullyQualifiedErrorId : ActiveDirectoryServer:0,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

При одностороннем Get-ADGroupMember доверии при использовании командлета в группе из доверенного леса вы получаете следующие ошибки, если группа содержит участников из доверенного леса:

  • «Произошла неуказанная ошибка»
  • «Серверу не удалось обработать запрос из-за внутренней ошибки»

В качестве обходного решения используйте оснастку Пользователи и компьютеры Active Directory для просмотра членов группы или преобразования одностороннего доверия в одностороннее доверие.

Причина

Эта проблема возникает, если группа содержит участника из другого леса, учетная запись которого была удалена из леса учетной записи. Член представлен в локальном домене субъектом внешней безопасности (FSP). В экспорте LDIFDE группы членство отображается следующим образом:

dn: CN=Test-Local1,OU=Test Accounts,DC=contoso,DC=com

При удалении исходной учетной записи с идентификатором безопасности FSP не обновляется и не удаляется с учетом этого удаления. Необходимо вручную убедиться, что эти ссылки FSP удалены.

Решение

Чтобы устранить эту проблему, включите ведение журнала для запросов на разрешение, которые касаются этих идентификаторов безопасности и выполняются веб-службой Active Directory. Таким образом можно определить учетные записи, для которых не удается выполнить разрешение. Для этого выполните командлет Get-ADGroupMember contoso.com на контроллере домена (где заполнитель представляет указанный домен).

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

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgInfoLevel -Value 0x800 -Type dword -Force Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgTraceOptions -Value 0x1 -Type dword -Force 

Не забудьте отключить ведение журнала при наличии журнала:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa" -Name LspDbgInfoLevel -Value 0x0 -Type dword -Force 

Вы увидите файл с именем c:\windows\debug\lsp.log, который отслеживает попытки SID-Name разрешения. При повторном запуске командлета на контроллере домена, где был выполнен командлет, файл регистрирует сбои и будет выглядеть следующим образом:

LspDsLookup — ввод функции LsapLookupSidsLspDsLookup — запрос LookupSids для 1 идентификаторов безопасности с level=1, mappedcount=0, options=0x0, clientRevision=2 обрабатывается. Идентификаторы безопасности: LspDsLookup — Sids[ 0 ] = S-1-5-21-3110691720-3620623707-1182478234-698540LspDsLookup — Requestor details: Local Machine, Process Process Name = C:\Windows\ADWS\Microsoft.ActiveDirectory.WebServices.exe LspDsLookup — Entering function LsapDbLookupSidsUsingIdentityCacheLspDsLookup — 1 sids remain unmappedLspDsLookup — Exiting function LsapDbLookupSidsUsingIdentityCache с состоянием 0x0LspDsLookup — запрос цепочки LookupSids (с помощью Netlogon) к \ dc3.northwindtraders.com для 1 sids будет выполнен с level=6, mappedcount=0, options=0x0, serverRevision=0. Идентификаторы безопасности: LspDsLookup — Sids[ 0 ] = S-1-5-21-3110691720-3620623707-1182478234-698540 LspDsLookup — Lookup request (using Netlogon) to \ dc3.northwindtraders.com returned with 0xc0000073 and mappedcount=0, serverRevision=0LspDsLookup — выход из функции LsapLookupSids с состоянием 0xc0000073

Проверьте наличие следующих элементов, чтобы убедиться, что это соответствующий раздел для этой проблемы (в предыдущем примере выходных данных):

  • Процесс выполняется C:\Windows\ADWS\Microsoft.ActiveDirectory.WebServices.exe.
  • Например, запрос отправляется контроллеру домена в другом лесу northwindtraders.com .
  • Код возврата — это 0xc0000073, что равно STATUS_NONE_MAPPED.

Чтобы найти объект FSP, выполните следующую команду (замените доменные имена и идентификаторы безопасности):

get-AdObject -Searchbase "CN=ForeignSecurityPrincipals,DC=contoso,DC=com" -ldapfilter "(cn=S-1-5-21-3110691720-3620623707-1182478234-698540)" 

Исходный объект для этого FSP больше не существует, поэтому его можно безопасно удалить. Это также приведет к удалению из всех групп, в которых он входит:

get-AdObject -Searchbase "CN=ForeignSecurityPrincipals,DC=contoso,DC=com" -ldapfilter "(cn=S-1-5-21-3110691720-3620623707-1182478234-698540)" | Remove-AdObject -Confirm:$false 

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

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

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

Навигация по посту

  • Получение компьютеров
  • Фильтрация вывода
    • Использование Filter
    • Использование Properties
    • Получение включенных и отключенных учетных записей

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

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

    Get-ADComputer -Filter *

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

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

    Import-Module ActiveDirectory

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

    Get-Module -Name ActiveDirectory

    Проверка модуля Powershell Active Directory

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

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

    Get-ADComputer -Identity "AD1"

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

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

    Get-ADComputer -Filter * -Properties *

    Получение всех свойств из списка компьютеров домена в Powershell

    Вам так же будет интересно:

    Как установить Powershell AD модуль

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

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

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

    Get-ADComputer -Filter * -Properties * | Get-Member -MemberType Properties | select name

    Свойства объекта компьютера в Powershell

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

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

    Get-ADComputer -Filter -Properties *

    Filter у команды Get-ADComputer в Powershell

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

    Get-ADComputer -Filter -Properties *

    Использование Filter у команды Get-ADComputer в Powershell

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

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

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

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

    Get-ADComputer -Filter * -Properties Created

    Дата создания объекта компьютера в Powershell

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

    Get-ADComputer -Filter * -Properties Created,CN,CodePage

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

    Get-ADComputer -Filter * -Properties * | ` Where-Object -Property Created -LT (Get-Date -Year 2019 -Month 12 -Day 31)

    Фильтрация с командой Get-ADComputer Powershell

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

    $date = (Get-Date -Year 2019 -Month 12 -Day 31) Get-ADComputer -Filter * -Properties * | ` Where-Object -Property Created -LT $date| ` select Name, Created | ft

    Форматирования вывода команды Get-ADComputer в Powershell

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

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

    Get-ADComputer -Filter

    Получение списка отключенных компьютеров Powershell

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

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

    -SearchBase "OU=Moscow,DC=domain,DC=local"

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

    Get-ADComputer -Filter * -SearchBase "OU=Moscow,DC=Domain,DC=local"

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

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

    # Организационные единицы $ous = @('Moscow', 'SPB') # Домен $domain = 'DC=domain,DC=local' foreach ($ou in $ous)

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

    Вам так же будет интересно:

    Как создавать команды и функции в Powershell вызывать их и передавать параметры

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

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

    Get-ADComputer -Filter * -ResultSetSize 1

    Ограничение вывода команды Get-ADUser в Powershell

    Эскорт в CSV

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

    Get-ADComputer -Filter * -Properties * | Export-CSV -Path "C:\ADComputers.csv" -NoTypeInformation

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

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