Поиск в active directory windows 10

Обновлено: 07.07.2024

Всё о PowerShell в Windows и на Linux. Системное администрирование Windows

Командлет Get-ADComputer PowerShell можно использовать для получения различной информации об объектах учётных записей компьютеров (серверах и рабочих станциях) из домена Active Directory. Это один из самых полезных командлетов для поиска компьютеров AD по различным критериям (для получения информации об учётных записях пользователей AD используется другой командлет — Get-ADUser).

Чтобы использовать командлет Get-ADComputer необходимо установить Модуль Active Directory для Windows PowerShell, в каких системах он уже присутствует и как его установить если он ещё не установлен, смотрите в статье «Как установить и использовать модуль Active Directory PowerShell». На рабочих станциях данный модуль вы можете установить следующей командой:

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

Чтобы получать информацию из AD с помощью командлетов из модуля AD для PowerShell, вам не нужны права администратора домена. Достаточно, чтобы учётная запись, под которой запускается командлет, была членом группы «Domain Users / Authenticated Users».

Чтобы получить информацию о конкретной учётной записи компьютера в домене, укажите её имя в качестве аргумента параметра -Identity:


Командлет Get-ADComputer вернул из AD только основные свойства объекта ADComputer. Нас интересует время последней регистрации компьютера в домене AD, но эта информация не отображается в выводе команды выше. Вы можете перечислить все доступные свойства этого компьютерного объекта из Active Directory:



Используя Get-Member, вы можете получить список всех свойств объекта ADComputer:



Дата последнего входа компьютеров в сеть указана в атрибуте LastLogonDate.

Командлет Get-ADComputer позволяет отображать любые свойства компьютера в результатах выполнения команды. Удалите всю ненужную информацию, оставив только значения атрибутов Name и LastLogonDate.

Итак, мы получили данные о последней регистрации в домене для отдельного компьютера. Затем вам нужно изменить команду, чтобы она отображала информацию о времени последней сетевой регистрации для всех компьютеров в домене. Для этого замените -Identity на -Filter *:

У нас получилась простая таблица, которая содержит всего 2 поля: имя компьютера и дата LastLogonData. Вы можете добавить в эту таблицу другие поля объекта ADComputer.

Чтобы отобразить информацию об объектах компьютеров в определённом OU (организационном подразделении), используйте параметр -SearchBase:

Отсортируйте результаты запроса по дате последнего входа в систему с помощью командлета Sort-Object:

Итак, у нас есть список компьютеров и дата их последнего входа в домен Active Directory. Теперь мы хотим отключить учётные записи компьютеров, которые не использовались в течение 120 или более дней.

Используя Get-Date, мы можем получить значение текущей даты в переменной и уменьшить его до 120 дней:

Полученную переменную даты можно использовать как фильтр запроса Get-ADComputer в поле LastLogonDate:

Итак, мы создали список неактивных учётных записей компьютеров, которые не регистрировались в сети более 120 дней. Используйте команду Disable-ADAccount или Set-ADComputer, чтобы отключить их.

Совет. В первый раз лучше проверить результаты выполнения команды с помощью переключателя -WhatIf, который позволяет увидеть, что произойдёт, если бы команда была запущена, но при этом в системе ничего изменено не будет.

Теперь вы можете отключить все неактивные учётные записи компьютеров:

Примечание. Также вы можете получить список заблокированных, отключённых и неактивных компьютеров и пользователей домена с помощью отдельного командлета Search-ADAccount.

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

Ниже приведены ещё несколько полезных примеров использования командлета Get-ADComputer для запроса и поиска компьютерных объектов в домене по определенным критериям.

Чтобы получить общее количество всех активных (не заблокированных) компьютеров в Active Directory:

Подсчёт количества экземпляров Windows Server в домене AD:

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

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

Чтобы найти все рабочие станции под управлением Windows 10:

Чтобы получить список серверов в домене с версией ОС, установленным пакетом обновлений и IP-адресом:

На выходе получилась красивая таблица со списком Windows Server в AD.

Атрибут -LDAPFilter позволяет использовать различные запросы LDAP в качестве параметра командлета Get-ADComputer, например:

Чтобы найти все отключённые компьютеры в определённом подразделении Active Directory:

Чтобы удалить все учётные записи компьютеров, которые не входили в домен более 6 месяцев, вы можете использовать команду:

Результат команды Get-ADComputer можно экспортировать в текстовый файл:

Вы также можете получить список компьютеров и экспортировать его в файл CSV:

Или получите файл отчёта в формате HTML со списком компьютеров и необходимыми свойствами:

Чтобы выполнить определённое действие со всеми компьютерами в результирующем списке, необходимо использовать цикл ForEach-Object. В этом примере мы хотим создать список серверов в домене и запросить конкретную информацию с каждого сервера (файл результатов должен содержать имя сервера, производителя и модель сервера).

Вы можете использовать более короткий синтаксис цикла. Предположим, вам нужно запустить определённую команду на всех компьютерах в определённом OU (в этом примере я хочу запустить команду обновления групповой политики на всех серверах):

Используя Get-AdComputer в скриптах автозапуска PowerShell, вы можете управлять различными настройками компьютера. Например, я слежу за состоянием агента (службы) SCCM на компьютерах пользователей. Небольшой скрипт входа в систему выполняется на каждом компьютере во время запуска, он сохраняет статус службы ccmexec в неиспользуемый атрибут компьютера — extensionAttribute10.

Затем с помощью следующей команды я могу найти компьютеры, на которых служба CCMExec отсутствует или не работает.

Ещё примеры использования. Допустим, имеется задача получить информацию о всех компьютерах, у которых имя начинается с определённой строки. Для этого можно использовать опцию -Filter с оператором сравнения -like.

Следующая команда выведет имя, DNS-имя хоста и IPv4-адрес для всех компьютеров, чьё имя начинается на User01:

Можно строить более сложные логические условия используя операторы сравнения, например, следующая команда выведет указанные свойства всех компьютеров с именами, начинающимися с Computer01 или Computer02.

Предположим, нужно вывести все компьютеры, которые изменили свой пароль за определённый период времени. Следующая команда получает все компьютеры, которые изменили свой пароль за последние 90 дней.

Предположим имеется задача составить список аккаунтов компьютеров в определённой локации используя LDAPFilter. Следующая команда получает учётные записи компьютеров в расположении CN=Computers,DC=User01,DC=com, при этом с помощью LDAPFilter выбираются только компьютеры, которые указаны как ноутбуки.

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


Следующие команды покажут имя, имя хоста DNS и адрес IPv4 всех компьютеров, чьё имя начинается со строки «Computer01» И у которых пароль последний раз установлен в течение предшествующих 30 дней.

date

11.11.2021

directory

Active Directory, PowerShell

comments

Комментариев пока нет

Задача поиска объектов в Active Directory (пользователей, групп или компьютеров) по имени с помощью некого шаблона, регулярного выражению или маске не так очевидна, как кажется на самом деле. Дело в том, что по-умолчанию графическая консоль ADUC (AD Users and Computers), не позволяет использовать подстановочные символы в начале или в середине поисковой фразы.

Например, вы хотите найти в Active Directory все группу, в имени которых содержится ключевое слово « SQL ». Если открыть консоль поиска (Find User, Contacts, and Groups) в ADUC и выполнить обычный поиск по ключевому слову SQL , то результаты скорее всего вас не устроят. Консоль ADUC выведет только группы и пользователей у которых указанное ключевое слово содержится в начале имени. Остальные объекты со словом sql не будут найдены. Поиск по маске *sql* также не даст результатов (подстановочные символы просто не работают).

поиск объектов в AD по ключевым словам

Вы можете быстро открыть окно поиска в AD с помощью команды %SystemRoot%\SYSTEM32\rundll32.exe dsquery,OpenQueryWindow .

Поиск пользователей и групп в Active Directory из консоли ADUC

Вы можете найти нужные объекты в графической консоли Active Directory Users and Computers ( dsa.msc ) с помощью простых LDAP запросов.

  1. Для этого, откройте меню Find и в выпадающем списке типов поиска выберите Custom Search;
  2. Переключитесь на вкладку Advanced;
  3. В поле LDAP query, введите: name=*sql*
Примечание. Данный LDAP запрос говорит, что вы хотите найти все объекты AD, содержащие в имени значение sql. Для этого нужно воспользоваться символом подстановки * с обеих сторон.

Если нужно искать только объекты AD типа группа, используйте такой запрос.

ldap запросы для поиска в Active Directory из консоли dsa.msc

Как вы видите, по данному шаблону было найдено множество объектов AD (группы, компьютеры, пользователи, сервисные gMSA аккаунты).

Вы можете использовать расширенные фильтры в консоли поиска AD. Для этого включите опцию Filter в меню View и используйте расширенные фильтры для детализации поиска.

фильтры поиск в Active Directory

С помощью пункта меню View -> Choose Columns вы можете добавить дополнительные атрибуты объектов AD, по которым можно фильтровать найденные объекты.

Если вы используете для поиска консоль Active Directory Administrative Center ( dsac.exe ), в ней также можно использовать шаблоны LDAP для поиска. Выберите Global Search и переключитесь в режим Convert to LDAP. Введите запрос в поле LDAP query.

LDAP запросы в консоли Active Directory Administrative Center

Совет. В некоторых случаях для поиска объектов удобно использовать сохраненные LDAP запросы в консоли Active Directory.

Поиск компьютеров в Active Directory

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

поиск по ключам в именах компьютеров AD

Если нужно найти компьютеры в AD по маске, нужно использовать такой LDAP запрос в разделе Custom Search -> Advanced.

Поиск групп, пользователей и компьютеров в Active Directory с помощью PowerShell

Также для поиска объектов в AD, можно воспользоваться модулем PowerShell для ActiveDirectory.

Для поиска в Active Directory определенного типа объекта можно использовать соответствующий командлет:

    – поиск групп – поиск пользователей – поиск компьютеров

Итак, сначала нужно импортировать модуль PowerShell:
Import-Module ActiveDirectory

Для поиска групп в AD по шаблону, можно воспользоваться такой командой PowerShell:

Get-ADGroup -Filter -Properties Description,info | Select Name,samaccountname,Description,info | Sort Name

поиск группы в AD с помощью PowerShell

Аналогично можно выполнить поиск по имени компьютера или пользователя:

Get-ADUser -Filter
Get-ADComputer -Filter

Если вы хотите выполнить универсальный поиск по всем типам объектам AD, используйте командлет Get-ADObject:

Get-ADObject -Filter –Properties * | select sAMAccountName, ObjectClass, userPrincipalName, DisplayName, Description | FT

Как вы видите, команда вывели все типа объектов в AD (ObjectClass: computer, user,group, msDS-GroupManagedServiceAccount).

Get-ADObject поиск любых объектов в Active Directory из консоли powershell

Можно использовать LDAP фильтр непосредственно в команде Get-ADObject, также добавим область поиска с помощью опции SearchBase:

Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=*sql*))" -SearchBase "OU=SPB,DC=winitpro,DC=ru"

Специальный командлет Search-ADAccount можно использовать для поиска отключенных, неактивных пользователей или компьютеров.

Надеюсь, эти простые способы облегчат вам задачу поиска объектов в Active Directory.

Постановка задачи

Вы наверняка знаете, что с конца 2019 года компания Microsoft перестает в базовом варианте поддерживать операционные системы Windows Server 2008 R2 и Windows 7, останется только расширенная поддержка для корпоративных пользователей. Вам как системному администратору можете поступить задача, определить сколько у вас таких рабочих станций или серверов, доступны ли они по сети, когда последний раз обращались к контроллеру домена и были изменены их данные.

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

Решение задачи

Так как у меня доменная инфраструктура и единой точкой получения информации является база Active Directory и это удобно. Получить данные мы можем тремя методами:

  1. Использование LDAP запроса к контроллеру домена
  2. Через оболочку PowerShell
  3. Через SCCM
хочу отметить, что первые два метода доступны всем, а последний, только тем организациям, где внедрен мега продукт System Center Configuration Manager

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

И так получить я хочу компьютеры у которых в качестве операционной системы выступает Windows Server 2008 R2. Для этого откройте оснастку "Active Directory Пользователи и компьютеры". В оснастке ADUC найдите раздел "Сохраненные запросы" и через правый клик по контейнеру, выберите пункт "Создать - Запрос".

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

Задаете понятное имя LDAP запроса и нажимаем кнопку "Запрос".

Создание запроса LDAP

Выбираете "Пользовательский поиск", в поле выбираете "Компьютер - Операционная система".

Поиск компьютеров по операционным системам

В значении пишите Windows Server 2008 и нажимаете кнопку добавить.

поиск компьютеров в Active Directory

Сохраняем настройки, нажимая кнопку "Ок".

Сохранение LDAP запроса

В результате мы получили вот такой LDAP зарос:

(&(objectCategory=computer)(objectClass=computer)(operatingSystem=Windows\20Server\202008\20R2*))

Текст LDAP запроса

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

Список компьютеров из Active Directory

Получить список компьютеров по ОС из PowerShell

Запускаем оболочку PowerShell, для того чтобы получить список всех компьютеров с нужной операционной системой введите вот такую команду:

Get-ADComputer -Filter < OperatingSystem -Like '*Windows Server 2008*' >-Properties OperatingSystem | Select Name, OperatingSystem | Format-Table -AutoSize

На выходе получите список из имени и версии ОС

Поиск компьютеров AD через PowerShell

Согласитесь, что это не информативно. Хочется, чтобы были данные:

  • Имя
  • Версию операционной системы
  • Дату последнего обращения (LastLogonDate)
  • Дату изменения (Modified)
  • Статус (Включена/Отключена)
  • Сетевая доступность (Отвечает на ping или нет)

Эту задачу я выполню с помощью вот такого кода, который я писал еще пару лет назад:

foreach ($comp in $Comps)
$comp_info = $null
$comp_info = New-Object psobject -Property @ "OperatingSystem" = $comp.OperatingSystem; "LastLogonDate" = $comp.LastLogonDate; "Modified" = $comp.Modified; "Enabled" = $comp.Enabled>
$comps2 += $comp_info
>

$comps2 | select Name, OperatingSystem, LastLogonDate, Modified, Enabled, Ping | sort Ping | Format-Table -AutoSize

Поиск компьютеров в AD

Если нужно выгрузить в файл, то просто добавьте в конце | Out-File C:\Scripts\Windows-Server.txt или для csv файла | Export-CSV All-Windows.csv -NoTypeInformation -Encoding UTF8

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

Поиск компьютеров в SCCM

SCCM, это мощнейшее средство, которое позволяет вам получать любые данные. Переходим на вкладку "Мониторинг - Отчеты - Операционная система" и выберите там пункт "Компьютеры с Windows Server"

Поиск компьютеров в SCCM

Выбираем коллекцию и нажимаем построить отчет.

Как найти компьютеры по ОС через SCCM

На выходе вы получите отчет по вашим хостам. В принципе данную информацию можно получить и через запрос в SCCM, как это делать смотрите по ссылке.

Системным администраторам важно знать, как включить оснастку Active Directory на ПК, работающем в Windows 10. Эта программа помогает защитить данные, управлять ими и контролировать функционирование объектов в своей сети. Для активации оснастки нужно скачать на ПК инструмент RSAT. Установить эту программу удастся только на компьютер, работающий на базе Professional или Enterprise Win 10.

Что такое Active Directory в Windows 10 и для чего это нужно

Компания «Майкрософт» разработала новую программу, позволяющую объединить все объекты сети (компьютеры, роутеры, принтеры, профили пользователей, серверы) в единую систему. Называется это хранилище — Active Directory или Активный каталог (сокращенно AD).

screenshot_1

Для реализации этой программы нужен специальный сервер, вернее, контроллер домена. В нем будет храниться вся информация. Через него выполняется аутентификация (через протокол Kerberos) пользователей и различных устройств в сети. Контроллер домена будет мониторить доступ к объектам своей сети, то есть разрешать запрашиваемое действие или, наоборот, блокировать его.

Использование Active Directory имеет ряд преимуществ. Эта программа обеспечивает безопасную работу, упрощает взаимодействие различных объектов одной сети. С помощью AD можно ограничить ряд функций для определенных пользователей. Данные, хранящиеся на таком сервере, защищены от внешнего доступа. Службы AD обеспечивают удобный обмен файлами (на основе технологии DFS), объединяют все объекты в одну систему (поддерживается стандарт LDAP). Возможна интеграция с Windows Server через протокол RADIUS.

screenshot_2

Программу Active Directory можно использовать на базе профессиональной редакции Win10. Существует специальный инструмент управления доменами (оснастка ADUC), позволяющий адаптировать AD к своей ОС. Этот адаптер позволяет контролировать и управлять объектами сети. Прежде чем использовать ADUC, рекомендуется установить сервис RSAT, включающий Командную строчку, Power Shell, а также средства удаленного администрирования сервера.

Важно! Active Directory выступает в роли каталога, хранилища информации о пользователях и инфраструктуре сети. Реализация этого проекта осуществляется через контроллер домена. Это сервер контролирует доступ (разрешает или блокирует запросы) к объектам своей сети. AD рекомендуется использовать для больших компаний.

screenshot_3

Где скачать и как установить

Вначале нужно выполнить установку RSAT на свой ПК. По умолчанию этот инструмент в Win 10 отсутствует. С помощью RSAT удастся дистанционно управлять объектами сети с использованием Диспетчера серверов. Этот сервис нельзя загрузить на ноутбук, работающий на основе Домашней или Стандартной версии. RSAT разрешается скачивать на мощные ПК, имеющие Профессиональную или Корпоративную редакцию Win 10.

Как самостоятельно скачать RSAT:

screenshot_4

  • найти «Remote Server Administration Tools» (для конкретной редакции Win 10);
  • выбрать пакет, соответствующий конкретной разрядности (х64 или х86);

screenshot_5

  • нажать на Download;
  • добавить RSAT на свой ПК;
  • в ходе установки активировать инсталляцию сопутствующих обновлений;
  • в конце перезапустить ПК.

screenshot_6

Завершив скачивание RSAT, рекомендуется выполнить активацию этого средства на своем ПК:

  • вызвать Control Panel;
  • отыскать подпункт «Programs and Features»;

screenshot_7

screenshot_8

  • появится окошко «Win Feature»;
  • отыскать «Remote Server Administration Tools»;
  • раскрыть ветку;
  • найти «Role Administration Tools»;
  • пометить птичкой «AD DS and AD LDS Tools» и другие строчки в этой ветке (должны быть активными по умолчанию);
  • выделить «AD DS Tools» и нажать на «ОК».

screenshot_9

Установку ADUC удастся выполнить из «Командной строчки с помощью таких команд:

  • «Dism / online / enable-feature / featurename:RSAT Client-Roles-AD»;
  • «Dism / online / enable-feature / featurename:RSAT Client-Roles-AD-DS»;
  • «Dism / online / enable-feature / featurename:RSAT Client-Roles-AD-DS-SnapIns».

screenshot_10

Важно! После скачивания инструментов нужно вызвать Панель управления и зайти в подпункт «Administrative Tools». Там должна появиться новая опция под названием «Active Directory Users and Computers». После появления этого инструмента разрешается подсоединиться к контроллеру. Выполнить это действие пользователь сможет самостоятельно.

Подключение консоли ADUC к домену из рабочей группы

Как подсоединиться к контроллеру со своего ПК:

screenshot_11

  • выполнить команду запуска оснастки от имени другого пользователя;
  • ввести: «runas / netonly / user:winitpro \ aaivanov mmc»;

screenshot_12

  • появится окошко «MMC»;
  • открыть в окошке «File»;
  • выбрать «Add / Remove Snap In»;
  • откроется окошко «Add or Remove Snap In»;
  • в левом списке «Snap in» этого окошка отыскать «Active Directory Users and Computers»;
  • перенести найденный инструмент в правый список «Console Root»;

screenshot_13

  • после перенесения кликнуть по «Active Directory Users and Computers»;
  • появится всплывающее меню;
  • выбрать «Change domain»;

screenshot_14

  • указать название своего домена;
  • подключить ADUC к доменному контроллеру.

screenshot_15

Основные понятия, встречающиеся в ходе работы

В процессе активации инструментов встречаются такие термины:

  • forests (леса) — элементы структуры AD, содержащие домены;
  • DNS — доменное имя, разрешенное в AD;
  • сервер — компьютер (выполняющий определенные функции в домене);
  • Domain Controller — контроллер домена (сервер, внутри которого находится хранилище Data Store — каталог, к которому поступают запросы от пользователей);
  • домен — элемент AD, включающий объекты (ПК, принтеры, профили пользователей) сети.

screenshot_16

Возможные проблемы

В процессе активации AD и RSAT может возникнуть ряд трудностей, например, заранее не активирована опция запуска программ от имени иного пользователя. К тому же надо помнить, что средство удаленного управления невозможно установить на ПК, работающем на Домашней или Стандартной версии Win 10. Инструмент RSAT удастся добавить только в Корпоративную или Профессиональную ОС.

Находится это средство на сайте «Майкрософт». Разработчики предлагают программы для конкретной версии Win 10. Если тип редакции не указан, нужно использовать RTM (полный выпуск ОС Виндовс) для скачивания RSAT.

Для того чтобы загрузить дополнительные компоненты для работы на удаленном сервере, не нужно искать специальное ПО. Выполнить это действие удастся с помощью Мастера Add Features Wizard. Рекомендуется заранее добавить дублер контроллера домена для предупреждения возможных сбоев в работе.

screenshot_17

Основные принципы работы

Инструмент Active Directory является главным узлом инфраструктуры, выполняющим управление объектами в сети и контролирующим доступ к ним. В случае отказа AD все устройства и серверы будут недоступны. Обезопасить систему от подобной проблемы можно с помощью одного или нескольких дублирующих контроллеров доменов.

В решении нашей задачи мы будем использовать разные средства, как графические, так и консольные, в виде скриптов на Powershell, но обо всем по порядку.

Через оснастку active directory пользователи и компьютеры

Через ADUC можно получить список компьютер, по такому значению как последнее время изменения, которое по дате совпадает с параметром последнего логирования компьютера в Active Directory. Открываем active directory пользователи и компьютеры. Выбираем пункт сохраненные запросы и нажимаем создать запрос.

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

На вкладке пользователи выбираем пункт «Число дней со времени последнего входа в систему», я ставлю 60 дней, так как считаю, что таких командировок нет и компьютер уже точно не присутствует в локальной сети, и нет смысла хранения его учетной записи в базе контроллера домена.

Все, все параметры заданы и можно строить запрос к базе данных AD.

На выходе я получил список неактивных компьютеров в своей локальной сети, я называю их призраками. Они появляются, либо с поломкой техники, либо из-за халатности администратора. Простой пример системный администратор взял компьютер pyatilistnik01, для переустановки системы, в итоге при попытке ввода его в домен , он получает ошибку, о том, что такой компьютер уже есть и забивает на это, вводя другое имя, либо оставляет имя с генерируемое при установке системы, вида DESKTOP-4BA9AP5. В таких случаях помогает корпоративный стандарт именования компьютеров и автоматическое переименование на основании этих политик.

Зайдя в свойства любого компьютера, перейдите на вкладку объект, и посмотрите поле, изменен, оно будет совпадать по дате с полем LastLogonDate. В итоге я вижу, что данный компьютер не появлялся в сети с 14 ноября 2016 года, что дает мне мысли, о его удалении из базы NTDS.dit .

Как видите, хоть этот метод и графический, но не совсем удобный в плане автоматизации, так как подразумевает кучу ручной работы. К сожалению, выделив все компьютеры вы не сможете их отключить за один клик, вывод делаем все то же самое на powershell.

Через Powershell

За, что я люблю Poweshell, так это за его огромные возможности, у него для Active Directory отдельный модуль с командлетами, позволяющими производить большое количество манипуляций. Сразу приведу готовый код, который ищет компьютеры, от которых не было вестей 120 дней и выводит все это дело в тестовый файл с датой последнего обращения.

$date_with_offset= (Get-Date).AddDays(-120)
Get-ADComputer -Properties LastLogonDate -Filter | Sort LastLogonDate | FT Name, LastLogonDate -AutoSize | Out-File c:\Script\services.txt

Замечательно список мы с вами научились получать, и вы можете посмотреть время последнего обращения компьютера к контроллеру домена. Идем дальше, теперь я хочу, чтобы данные компьютеры были выключены в Active Directory и были перемещены в отведенную под это дело OU. Вот пример кода.

$date_with_offset= (Get-Date).AddDays(-120)
$comps = Get-ADComputer -Properties LastLogonDate -Filter | Sort LastLogonDate
foreach ($comp in $comps)
Get-ADComputer -Properties LastLogonDate -Filter | Sort LastLogonDate | FT Name, LastLogonDate -AutoSize | Out-File c:\Script\services.txt

Тут все отключенные компьютеры будут перемещаться в организационное подразделение Мск Л. рабочие станции на удаление. И далее я сделал, вывод в txt файл, чтобы видеть, какие именно учетные записи были отключены.

Далее вы этот скрипт можете повесить на контроллеры домена, через групповую политику и выполнять хотя бы раз в месяц. Я лично такие компьютеры через неделю удаляю.

Полезные ключи командлета Get-ADComputer

Что вам еще может пригодиться у команды Get-ADComputer, это больше для себя подсказка. Напоминаю, чтобы им воспользоваться, нужно загрузить модуль Active Directory, через команду

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

Как видите, у команды очень много ключей и богатые возможности.

Я очень часто ее использую, когда мне нужно получить о компьютерной учетной записи максимальное количество данных, вот пример.

Get-ADComputer -Identity DESKTOP-2C4R0V6

В данном выводе команды вы увидите основные значения:

  • DistinguishedName
  • SID > кто не вкурсе что такое SID , то смотрите по ссылке.
  • DNSHostName

Если вам вдруг не хватает данных, то вы можете вывести все доступные поля.

Get-ADComputer -Identity DESKTOP-2C4R0V6 -Properties *

Если хотите вывести конкретные поля, то выполните вот такую конструкцию, через | перечисляются нужные поля

Get-ADComputer -identity DESKTOP-2C4R0V6 -Properties * | FT Name, LastLogonDate -Autosize

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

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

Выберем все компьютеры с операционной системой Windows 10

Get-ADComputer -Filter < OperatingSystem -Like ‘*Windows 10*’ >-Properties OperatingSystem | Select Name, OperatingSystem | Format-Table -AutoSize | Out-File C:\Script\server_system.txt

На выходе получаем файл со списком компьютеров.

Надеюсь вы поняли принцип поиска неактивных компьютеров в вашей локальной сети, и уверен, что вы сможете сами подобрать дополнительные сценарии использования powershell для себя.

Читайте также: