Получение и экспорт членства в группе безопасности AD в PowerShell с использованием списка ввода - PullRequest
0 голосов
/ 03 мая 2018

Попытка создать мой первый PS-скрипт для автоматизации некоторых повторяющихся работ, и у меня ограниченный успех. Я изначально начал с этого:

Get-ADGroupMember -Identity (Read-Host 'Enter group name') | Select samaccountname | Export-Csv -Path C:\test.csv -NoTypeInformation

Это запрашивает у меня имя группы безопасности, я ввожу его и экспортирую в файл. Большой! Теперь я хочу, чтобы он делал то же самое, за исключением того, что я набрал имя группы безопасности и повторил этот шаг несколько раз, я хочу, чтобы он автоматически извлекал данные из файла. Увы, у нас есть ..

foreach ($securitygroup in Get-Content -Path C:\input.txt)
{
Get-ADGroupMember -Identity $securitygroup | Select samaccountname | Export-Csv -Path C:\test.csv -Append -NoTypeInformation
}

Я поместил SG1 и SG2 на отдельные строки в input.txt и получил следующие ошибки:

Export-Csv : Cannot process argument because the value of argument "name" is not valid. Change the value of the "name" argument and run the operation again.
At C:\test script.ps1:3 char:70
+ ... countname | Export-Csv -Path C:\test.csv -Appe ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument: (:) [Export-Csv], PSArgumentException
+ FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.ExportCsvCommand

Get-ADGroupMember : An operations error occurred
At C:\test script.ps1:3 char:1
+ Get-ADGroupMember -Identity $securitygroup | Select samaccountname |  ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (SG2:ADGroup) [Get-ADGroupMember], ADException
+ FullyQualifiedErrorId : ActiveDirectoryServer:8224,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember

Похоже, здесь происходит две разные вещи: первая ошибка связана со значением аргумента "name", а вторая ошибка, потому что SG2 каким-то образом анализируется неправильно. Мысли?

1 Ответ

0 голосов
/ 03 мая 2018

Я попробовал ваш точный код, и это сработало. Может быть, это что-то или в вашем входном файле, или в одной из групп.

Попробуйте удалить часть Export-Csv, чтобы она выводилась в командную строку, и посмотрите, соответствует ли вывод:

foreach ($securitygroup in Get-Content -Path C:\input.txt)
{
    Get-ADGroupMember -Identity $securitygroup | Select samaccountname
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...