понедельник, 2 октября 2023 г.

Полезные командлеты для системного администратора Active Directory


Коллеги, добрый день!

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


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

Для выполнения данных команд необходимо установить модуль Rsat.ActiveDirectory, статья с инструкцией по установке доступна по ссылке

Запросы, касаемые компьютеров

  • Компьютеры с Windows Server 2012 и Windows Server 2019:

Спойлер:
Get-ADComputer -Filter 'OperatingSystem -like "*2012*" -or OperatingSystem -like "*2019*"' -property * | FT Name,OperatingSystem
  • Cписок компьютеров из OU с ОС и описанием в файл:

Спойлер
:
Get-ADComputer -filter * -Searchbase 'OU=Finance,OU=COMPANY,OU=*Worksations,DC=domain,DC=com' -properties description | select-object name,OperatingSystem,description | Export-CSV "C:\export\pc_list.csv" -NoTypeInformation -Encoding UTF8
  • Компьютеры, у которых операционная система не Windows Server 2016:

Спойлер
:
Get-ADComputer -Filter 'OperatingSystem -notlike "*2016*"' -property * | FT Name,OperatingSystem
  • Вывести количество компьютеров с Windows 10

Спойлер
:
(Get-ADComputer -Filter {enabled -eq "true" -and OperatingSystem -Like '*10*' }).count
  • Найти компьютеры имена которых начинаются с "W10" и вывести их имена и IP:

Спойлер
:
Get-ADComputer -Filter {Name -like "w10*"} -Properties * | FT Name,DNSHostName,IPv4Address
  • Выгрузить все компьютеры в файл по пути C:\export\pc.csv (каталог должен существовать) с указанием имени компьютера, ОС и описания (для удобства часто именно в это поле пишут имя пользователя за которым закреплен компьютер)

Спойлер
:
Get-ADComputer -Filter {OperatingSystem -Like "*Windows*" -and Enabled -eq $true} -Properties * | select Name, OperatingSystem, DistinguishedName, whenCreated, @{n='lastLogonTimestamp';e={[DateTime]::FromFileTime($_.lastLogonTimestamp)}}, Description, Enabled | sort Name | Export-CSV "C:\export\pc.csv" -NoTypeInformation -Encoding UTF8

Учтите, что Вы можете использовать параметр Filter:

-eq - Равно

-ne - Не равно

-ge - Больше или равно

-lt - Меньше чем

-le - Меньше или равно

-like - Поиск с подстановочными знаками

-notlike - Поиск подстановочных знаков с отрицанием

-and - И

Запросы, касаемые пользователей

  • Информация о доменной учетной записи (дату смены пароля, срок действия пароля, дату последнего входа, членство в группах и т.д.):

Спойлер
:
AD Net user ivan.ivanov /domain
  • Выгрузка пользователей из определенной группы безопасности (в примере это группа Finance, предположим, что в ней сотрудники департамента финансов):

Спойлер
:
Get-ADGroupMember -Recursive "Finance" | ForEach { Get-ADUser -filter {samaccountname -eq $_.SamAccountName} ` -Properties mail,DisplayName,title,Department } ` | Sort-Object mail,DisplayName,title,Department ` | Format-Table mail,DisplayName,title,Department
  • Выгрузка пользователей из OU в файл по пути C:\export\OU_members.csv - необходимо указать полный путь к OU, проще всего для этого использовать утилиту AD Explorer или выполнить команду Get-ADGroup 'Finance' -properties *

Спойлер
:
Get-ADUser -Filter {Enabled -eq "True"} -SearchBase "OU=Security,OU=Finance,OU=COMPANY,OU=*Accounts,DC=domain,DC=com" -Properties * | Select -Property samaccountname,mail,DisplayName,MobilePhone | Export-CSV "C:\export\OU_members.csv" -NoTypeInformation -Encoding UTF8
  • Список групп в которых состоит пользователь:

Спойлер
:
Get-ADUser ivan.ivanov -properties memberof | select memberof -expandproperty memberof
  • Фамилия и имя состоящих в группе пользователей:

Спойлер
:
Get-ADGroupMember -Recursive "Finance" | ForEach { Get-ADUser -filter {samaccountname -eq $_.SamAccountName} ` -Properties DisplayName } ` | Sort-Object DisplayName ` | Format-Table DisplayName
  • Список пользователей, состоящих в сруппе с почтой и телефоном:

Спойлер
:
Get-ADUser -Filter {Enabled -eq "True"} -SearchBase "OU=Finance,OU=COMPANY,OU=DEPARTMENTS,OU=*Accounts,DC=domain,DC=com" -Properties * | Select -Property samaccountname,mail,DisplayName,MobilePhone | Export-CSV "C:\export\OU_members.csv" -NoTypeInformation -Encoding UTF8
  • Отключенные учетные записи:

Спойлер
:
Search-ADAccount -UsersOnly -AccountDisabled|ft -AutoSize
  • Отключенные учетные записи в файл:

Спойлер
:
Search-ADAccount -AccountDisabled -UsersOnly| Export-Csv "c:\export\disabled_users.csv"
  • Список всех почтовых ящиков включенных пользователей:

Спойлер
:
Get-ADUser -Filter {Enabled -eq "True"} -SearchBase "DC=domain,DC=com" -Properties name, samAccountName, mail | select-object name, samAccountName, mail | Export-Csv -Path C:\export\mail_list.csv -NoTypeInformation -Delimiter "`t" -Encoding Unicode
  • Список всех почтовых ящиков включенных пользователей c отображаемыми именами:

Спойлер
:
Get-ADUser -Filter {Enabled -eq "True"} -SearchBase "DC=domain,DC=com" -Properties name, samAccountName, mail,DisplayName | select-object name, samAccountName, mail , DisplayName | Export-Csv -Path C:\export\mail_list.csv -NoTypeInformation -Delimiter "`t" -Encoding Unicode

Комментариев нет:

Отправить комментарий