У меня есть два файла .csv, и мне нужно сравнить их.Первый - это извлечение Active Directory, другой - извлечение списка профилей реестра.
Когда я сравниваю их, я хочу отображать только пользователей, присутствующих в списке профилей, отключенных вActive Directory и добавьте фильтр для отображения только тех, кто находится в домене («ДОМЕН \ Имя пользователя»).
compare-object -referenceobject $(get-content C:\Temp\UsersAD.csv) -differenceobject $(get-content C:\Temp\ProfileList.csv) | ?{$_.SideIndicator -eq '=>'}
Вот что я получил с помощью этого сценария:
PS C:\Users\Administrator.DOMAIN> C:\Users\Administrator.DOMAIN\Downloads\compare_users.ps1
InputObject SideIndicator
----------- -------------
#TYPE Selected.System.Management.Automation.PSCustomObject =>
"PSChildName" =>
"NT AUTHORITY\SYSTEM" =>
"NT AUTHORITY\LOCAL SERVICE" =>
"NT AUTHORITY\NETWORK SERVICE" =>
"LocalName\Administrator" =>
"NT SERVICE\MSSQL$MICROSOFT##WID" =>
"IIS APPPOOL\.NET v4.5" =>
"IIS APPPOOL\.NET v4.5 Classic" =>
В идеале это должновыглядит так:
PSChildName
"DOMAIN\Username1"
"DOMAIN\Username2"
Я пытался добавить фильтр в конце, но безрезультатно, так как это недопустимая команда:
compare-object -referenceobject $(get-content C:\Temp\UsersAD.csv) -differenceobject $(get-content C:\Temp\ProfileList.csv) -Filter "DOMAIN\" | ?{$_.SideIndicator -eq '=>'}
Вот как выглядит список профилей реестрапервоначально:
#TYPE Selected.System.Management.Automation.PSCustomObject
PSChildName
NT AUTHORITY\SYSTEM
NT AUTHORITY\LOCAL SERVICE
NT AUTHORITY\NETWORK SERVICE
LoacalName\Administrator
DOMAIN\Username
DOMAIN\Administrator
NT SERVICE\MSSQL$MICROSOFT##WID
IIS APPPOOL\.NET v4.5
IIS APPPOOL\.NET v4.5 Classic
Так что на самом деле мне нужно противоположное тому, что я получаю с помощью команды Compare-Object (т. е. «DOMAIN \ Username» и «DOMAIN \ Administrator»).
Коддля активных пользователей Active Directory:
Get-ADUser -Filter 'enabled -eq $true' |
Select-Object SamAccountName,@{Name='FullUserName';Expression={"DOMAIN\$($_.SamAccountName)"}} |
Export-CSV C:\Temp\UsersEnabled.csv -Encoding UTF8
Результат:
#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser
FullUserName
DOMAIN\Administrator
DOMAIN\User1
DOMAIN\User2