1000+ инструкций в блоге SoftComputers
0 0 голоса
Рейтинг

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

Приобрести оригинальные ключи активации Windows Server можно у нас в каталоге от 1190 ₽

Подготовка к работе с Get-ADComputer

Для работы с Get-ADComputer требуется модуль Active Directory. Убедитесь, что он установлен:

1. На сервере Windows Server 2012 и выше модуль подключается автоматически при установке компонента Remote Server Administration Tools (RSAT) -> Role Administration Tools -> AD DS and AD LDS Tools -> Active Directory module for Windows PowerShell.

2. На клиентских системах Windows 10/11 установите RSAT и включите модуль командой:


Add-WindowsCapability –Online –Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0"

3. Импортируйте модуль:


Import-Module ActiveDirectory

Права администратора домена не требуются — достаточно членства в группе Authenticated Users или Domain Users.

Справка о параметрах командлета Get-ADComputer вызывается стандартно с помощью Get-Help:

Get-Help Get-ADComputer

Получение информации о компьютере

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


Get-ADComputer -Identity SRV-DB01

Эта команда возвращает базовые атрибуты, такие как Name, DistinguishedName и SID. Чтобы получить все атрибуты, добавьте параметр -Properties *:


Get-ADComputer -Identity SRV-DB01 -Properties *

Этот список атрибутов компьютера также доступен в графической консоли Active Directory Users and Computers ( dsa.msc ) на вкладке редактора атрибутов.

Для просмотра списка всех доступных свойств объекта Computer используйте:


Get-ADComputer -Filter * -Properties * | Get-Member

Чтобы вывести только нужные атрибуты, например, Name и LastLogonDate:


Get-ADComputer -Identity SRV-DB01 -Properties * | Format-Table Name, LastLogonDate -AutoSize

Поиск всех компьютеров в домене

Для получения данных о всех компьютерах замените -Identity на -Filter *:


Get-ADComputer -Filter * -Properties * | Format-Table Name, LastLogonDate -AutoSize

Для ограничения поиска определенной организационной единицей (OU) используйте -SearchBase:


Get-ADComputer -SearchBase "OU=Moscow,DC=winitpro,DC=loc" -Filter * -Properties * | Format-Table Name, LastLogonDate -AutoSize

Сортировка результатов

Отсортируйте компьютеры по времени последней активности:


Get-ADComputer -Filter * -Properties * | Sort-Object LastLogonDate | Format-Table Name, LastLogonDate -AutoSize

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

Для поиска компьютеров, не регистрировавшихся в домене более 120 дней:

1. Задайте дату, отстоящую на 120 дней назад:


$date_with_offset = (Get-Date).AddDays(-120)

2. Найдите неактивные компьютеры:


Get-ADComputer -Properties LastLogonDate -Filter {LastLogonDate -lt $date_with_offset} | Sort-Object LastLogonDate | Format-Table Name, LastLogonDate -AutoSize

3. Протестируйте блокировку с параметром -WhatIf:


Get-ADComputer -Properties LastLogonDate -Filter {LastLogonDate -lt $date_with_offset} | Set-ADComputer -Enabled $false -WhatIf

4. Выполните блокировку:


Get-ADComputer -Properties LastLogonDate -Filter {LastLogonDate -lt $date_with_offset} | Set-ADComputer -Enabled $false

Альтернативно используйте Disable-ADAccount:


Get-ADComputer -Properties LastLogonDate -Filter {LastLogonDate -lt $date_with_offset} | Disable-ADAccount

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

Параметр -Filter позволяет искать компьютеры по базовым атрибутам с использованием логических операторов (-eq, -like, -and, -or).

— Подсчет активных компьютеров:


(Get-ADComputer -Filter {Enabled -eq "true"}).Count

— Подсчет серверов с Windows Server:


(Get-ADComputer -Filter {Enabled -eq "true" -and OperatingSystem -like "*Windows Server*"}).Count

— Поиск компьютеров в OU с именами, начинающимися на «BuhPC»:


Get-ADComputer -Filter {Name -like "BuhPC*"} -SearchBase "OU=Moscow,DC=winitpro,DC=loc" -Properties IPv4Address | Format-Table Name, DNSHostName, IPv4Address -AutoSize

Для рекурсивного поиска во вложенных OU добавьте -SearchScope 2:


Get-ADComputer -Filter {Name -like "BuhPC*"} -SearchBase "OU=Moscow,DC=winitpro,DC=loc" -SearchScope 2 -Properties IPv4Address | Format-Table Name, DNSHostName, IPv4Address -AutoSize

— Список серверов с атрибутами ОС и IP:


Get-ADComputer -Filter 'OperatingSystem -like "*Windows Server*" -and Enabled -eq "true"' -Properties Name, OperatingSystem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address | Sort-Object OperatingSystem | Format-Table Name, OperatingSystem, OperatingSystemVersion, OperatingSystemServicePack, IPv4Address -AutoSize

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

— Поиск с использованием LDAP-фильтра:


Get-ADComputer -LDAPFilter "(name=*db*)" | Format-Table

— Поиск заблокированных компьютеров в OU:


Get-ADComputer -Filter * -SearchBase "OU=Computers,DC=winitpro,DC=loc" | Where-Object {$_.Enabled -eq $false}

— Удаление компьютеров, неактивных более 6 месяцев:


Get-ADComputer -Properties LastLogonDate -Filter * | Where-Object {$_.LastLogonDate -lt (Get-Date).AddMonths(-6)} | Remove-ADComputer

— Проверка времени последней смены пароля:


Get-ADComputer -Identity PC123456 -Properties PasswordLastSet

— Экспорт списка серверов Windows Server 2019 в текстовый файл:


Get-ADComputer -Filter {OperatingSystem -like "*Windows Server 2019*"} -Properties OperatingSystem | Select-Object DNSHostName, OperatingSystem | Format-Table -AutoSize | Out-File C:\Scripts\server_system.txt

— Экспорт в CSV:


Get-ADComputer -Filter * -Properties * | Select-Object Name, OperatingSystem, OperatingSystemServicePack | Export-CSV C:\Scripts\All-Windows.csv -NoTypeInformation -Encoding UTF8

— Создание HTML-отчета:


Get-ADComputer -Filter {OperatingSystem -like "*Windows Server 2012*"} -Properties * | Select-Object Name, OperatingSystem | ConvertTo-Html | Out-File C:\Scripts\ad_computer.html

— Получение серийных номеров серверов через WMI:


Get-ADComputer -Filter 'OperatingSystem -like "*Windows Server*" -and Enabled -eq "true"' | Select-Object Name | ForEach-Object {Get-CimInstance Win32_Bios -ComputerName $_.Name -ErrorAction SilentlyContinue | Select-Object PSComputerName, SerialNumber}

— Получение информации о моделях серверов:


$Computers = Get-ADComputer -Filter {OperatingSystem -like "*Windows Server*"}
ForEach ($Computer in $Computers) {
$Hostname = $Computer.Name
$ComputerInfo = Get-WmiObject -ComputerName $Hostname Win32_ComputerSystem
$Manufacturer = $ComputerInfo.Manufacturer
$Model = $ComputerInfo.Model
Write-Host "Name: $Hostname"
Write-Host "Manufacturer: $Manufacturer"
Write-Host "Model: $Model"
Write-Host " "
"$Hostname;$Manufacturer;$Model" | Add-Content -Path "C:\Scripts\ServersInfo.txt"
}

— Обновление групповых политик на серверах в OU:


Get-ADComputer -SearchBase "OU=Servers,DC=winitpro,DC=loc" -Filter * | ForEach-Object {Invoke-Command -ComputerName $_.Name -ScriptBlock {gpupdate /force}}

Использование в логон-скриптах

Get-ADComputer можно комбинировать с логон-скриптами для записи данных в атрибуты AD. Например, для мониторинга состояния службы SCCM:

1. Логон-скрипт записывает состояние службы ccmexec в атрибут extensionAttribute10:


Set-ADComputer -Identity $env:COMPUTERNAME -Add @{extensionAttribute10="SCCM Agent:Running"}

2. Поиск компьютеров с неработающим агентом SCCM:


Get-ADComputer -Filter {extensionAttribute10 -ne "SCCM Agent:Running"} -SearchBase "OU=Computers,OU=MSK,DC=winitpro,DC=ru" -Properties DNSHostName, extensionAttribute10, LastLogon продолжалDate | Select-Object DNSHostName, extensionAttribute10, LastLogonDate

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

author avatar
copywriter
banner for Windows Server
Лицензионный ключ активации Windows Server от
1190 ₽ Купить
0 0 голоса
Рейтинг
Подписаться
Уведомить о
guest
     
0 отзывов
8
Межтекстовые Отзывы
Посмотреть все комментарии