Поиск компьютеров по операционной системе в Active Directory
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами разобрали вопрос, почему у вас отсутствует в системе библиотека vcruntime140.dll и научились ее успешно устанавливать. В сегодняшней публикации я бы вас хотел научить производить поиск в Active Directory по компьютерам с определенной операционной системой. Я расскажу в каких ситуациях вам, это будет полезно.
Постановка задачи
Вы наверняка знаете, что с конца 2019 года компания Microsoft перестает в базовом варианте поддерживать операционные системы Windows Server 2008 R2 и Windows 7, останется только расширенная поддержка для корпоративных пользователей. Вам как системному администратору можете поступить задача, определить сколько у вас таких рабочих станций или серверов, доступны ли они по сети, когда последний раз обращались к контроллеру домена и были изменены их данные.
Второй вариант, когда вам необходимо найти компьютеры с определенными операционными системами, связан с лицензированием, чтобы понять сколько у вас используется.
Решение задачи
Так как у меня доменная инфраструктура и единой точкой получения информации является база Active Directory и это удобно. Получить данные мы можем тремя методами:
- Использование LDAP запроса к контроллеру домена
- Через оболочку PowerShell
- Через SCCM
Получение компьютеров через LDAP запрос
И так получить я хочу компьютеры у которых в качестве операционной системы выступает Windows Server 2008 R2. Для этого откройте оснастку "Active Directory Пользователи и компьютеры". В оснастке ADUC найдите раздел "Сохраненные запросы" и через правый клик по контейнеру, выберите пункт "Создать - Запрос".
Задаете понятное имя LDAP запроса и нажимаем кнопку "Запрос".
Выбираете "Пользовательский поиск", в поле выбираете "Компьютер - Операционная система".
В значении пишите Windows Server 2008 и нажимаете кнопку добавить.
Сохраняем настройки, нажимая кнопку "Ок".
В результате мы получили вот такой LDAP зарос:
На выходе вы получите список компьютеров с нужной вам операционной системой, у меня получилось 86 серверов, большая часть из них имеет статус отключен, об этом говорит стрелка вниз на значке. Так же удобно будет добавить столбец последнего изменения.
Получить список компьютеров по ОС из PowerShell
Запускаем оболочку PowerShell, для того чтобы получить список всех компьютеров с нужной операционной системой введите вот такую команду:
На выходе получите список из имени и версии ОС
Согласитесь, что это не информативно. Хочется, чтобы были данные:
- Имя
- Версию операционной системы
- Дату последнего обращения (LastLogonDate)
- Дату изменения (Modified)
- Статус (Включена/Отключена)
- Сетевая доступность (Отвечает на ping или нет)
Эту задачу я выполню с помощью вот такого кода, который я писал еще пару лет назад:
$Comps = Get-ADComputer -Filter { OperatingSystem -Like '*Windows Server 2008*' } -Properties OperatingSystem, LastLogonDate, Modified | Select Name, OperatingSystem, LastLogonDate, Modified, Enabled | Sort-Object Enabled # | Format-Table -AutoSize
$comps2 = @()
foreach ($comp in $Comps)
{
$comp_info = $null
$comp_info = New-Object psobject -Property @{"Name" = $comp.Name; "Ping" = $(Test-Connection -ComputerName $comp.Name -Quiet -Count 1 -Verbose -ErrorAction SilentlyContinue);`
"OperatingSystem" = $comp.OperatingSystem; "LastLogonDate" = $comp.LastLogonDate; "Modified" = $comp.Modified; "Enabled" = $comp.Enabled}
$comps2 += $comp_info
}
# Скрипт с сайта Pyatilistnik.org
$comps2 | select Name, OperatingSystem, LastLogonDate, Modified, Enabled, Ping | sort Ping | Format-Table -AutoSize
Если нужно выгрузить в файл, то просто добавьте в конце | Out-File C:\Scripts\Windows-Server.txt или для csv файла | Export-CSV All-Windows.csv -NoTypeInformation -Encoding UTF8
В итоге я получил вот такой замечательный текстовый файл, в котором я вижу, какой компьютер живой и отвечает по сети, а какой нет и когда он последний раз обращался к контроллеру домена.
Поиск компьютеров в SCCM
SCCM, это мощнейшее средство, которое позволяет вам получать любые данные. Переходим на вкладку "Мониторинг - Отчеты - Операционная система" и выберите там пункт "Компьютеры с Windows Server"
Выбираем коллекцию и нажимаем построить отчет.
На выходе вы получите отчет по вашим хостам. В принципе данную информацию можно получить и через запрос в SCCM, как это делать смотрите по ссылке.
На этом у меня все. С вами был Иван Семин. автор и создатель IT портала Pyatilistnik.org.
Иван, добрый день.
«В принципе данную информацию можно получить и через запрос в SCCM, как это делать смотрите по ссылке.»
Где можно ссылку посмотреть, подскажите, пожалуйста?