从列表中获取-ADGroupMember

时间:2016-11-23 05:12:56

标签: powershell get active-directory

尝试通过在文本文件中包含组来运行1 ps脚本..

    $groups = Get-Content c:\groups.txt {
    foreach($Group in $Groups) 

    Get-ADGroupMember -identity "$groups" | select samaccountname,name "c:\test.txt" }
  

在foreach循环中缺少语句体。在行:3 char:1   +<<<< Get-ADGroupMember -identity" $ groups" |选择samaccountname,name>> " C:\ test.txt的" }       + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException       + FullyQualifiedErrorId:MissingForeachStatement

2 个答案:

答案 0 :(得分:1)

您需要使用换行符分割输入文件。您可以将所有组管道输入单个“选择”以输出:

(Get-Content c:\groups.txt) -split '\n' | % {
    Get-ADGroupMember -identity $_
} | select samaccountname,name | Out-File "c:\test.txt"

修改 这将使用计算属性,以便您可以捕获组名称:

(Get-Content c:\groups.txt) -split '\n' | % {
    Get-ADGroupMember -identity $_ | select @{n="Group";e={$_}},samaccountname,name
} | Out-File "c:\test.txt"

如果您最终将输出转换为电子表格,您也可以考虑ConvertTo-Csv

答案 1 :(得分:0)

由于我不确定您要实现的目标,因此我对其进行了修改,以消除所有明显的错误。

Get-Content c:\groups.txt -OutVariable groups | foreach {
    Get-ADGroupMember -identity $_ | select samaccountname,name | 
        out-file c:\test.txt -Append }