Попытка создать мой первый 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 каким-то образом анализируется неправильно. Мысли?