Сравнение двух групп AD
Доброго времени суток!
Помогите кто может =( Есть следующая задача.
Есть две группы в AD необходимо сравнить их по пользователям, и если пользователь есть в обоих то вывести в файл SamAccountName, DisplayName и мена групп в которые включен данный пользователь, но не всех, а только тех групп в названии которых встречается сочетание IT.
То есть :
Если пользователь PetrovPP состоит в группе 1 и группе 2 то в результат должен получиться следующий:
PetrovPP Петров П.П. slg-IT40 dllg-IT
На текущий момент у меня получается только сравнивать 2 группы и выводить в файл =(
Код:
Get-ADUser -Filter "memberOf -RecursiveMatch Get-AdGroup User1gr -and memberOf -RecursiveMatch Get-AdGroup User2gr " -Properties DisplayName | Select SamAccountName, DisplayName | Out-File "C:\tmp\report.txt" -Encoding UTF8
|
Код:
Get-ADUser -Filter "memberOf -RecursiveMatch '$gr1' -and memberOf -RecursiveMatch '$gr2'" -Properties DisplayName | Foreach {
$gr = (Get-ADPrincipalGroupMembership $_.SamAccountName | Where {$_.Name -match "IT"} | Foreach {$_.Name}) -join " "
"{0} {1} {2}" -f $_.SamAccountName,$_.DisplayName,$gr
}
|
Огромное спасибо! А как заставить выводить полученные данные в файл? Out-File "C:\tmp\report.txt" -Encoding UTF8 не хочет выполнять =(
|
Данный вариант к сожалению не работает выдает одну и туже ошибку и нет результатов. Без
Код:
Out-File "C:\tmp\report.txt" -Encoding UTF8
результат такой же!
Код:
PS C:\Users\User1> $f = "C:\Temp\test.txt"
PS C:\Users\User1> $gr1 = Get-AdGroup SL-Olluser
PS C:\Users\User1> $gr2 = Get-AdGroup SGL-UsersVHD
PS C:\Users\User1> Get-ADUser -Filter "memberOf -RecursiveMatch '$gr1' -and memberOf -RecursiveMatch '$gr2'" -Prop
erties DisplayName | Foreach { $gr = (Get-ADPrincipalGroupMembership $_.SamAccountName | Where {$_.Name -match "RTD"} |
Foreach {$_.Name}) -join " ""{0} {1} {2}" -f $_.SamAccountName,$_.DisplayName,$gr } | Out-File $f -Encoding UTF8
Exception of type 'System.OutOfMemoryException' was thrown.
строка:1 знак:127
+ Get-ADUser -Filter "memberOf -RecursiveMatch '$gr1' -and memberOf -RecursiveMatc ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], OutOfMemoryException
+ FullyQualifiedErrorId : System.OutOfMemoryException
Insufficient memory to continue the execution of the program.
строка:1 знак:127
+ Get-ADUser -Filter "memberOf -RecursiveMatch '$gr1' -and memberOf -RecursiveMatc ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], OutOfMemoryException
+ FullyQualifiedErrorId : System.OutOfMemoryException
Insufficient memory to continue the execution of the program.
строка:1 знак:127
+ Get-ADUser -Filter "memberOf -RecursiveMatch '$gr1' -and memberOf -RecursiveMatc ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], OutOfMemoryException
+ FullyQualifiedErrorId : System.OutOfMemoryException
|
Увеличение почти в 3 раза, до 3 Гб не дало результата =( Ошибка та же осталась
|
Время: 23:13.
© OSzone.net 2001-