我正在尝试逐行读取文本文件到get-adgroup cmdlet,以获取哪些用户是txt文件中组成员的列表
Clear-Host;
$groups = "./desktop/groups.txt"
$arrayofgroups = Get-Content $groups
foreach ($item in $arrayofgroups) {
Get-ADGroup $item -properties * | select samaccountname, members
}
文本文件如下所示:
"group 1"
"group 2"
以下代码返回:
Get-ADGroup:无法将参数'Identity'绑定到目标。异常设置“Identity”:“无法验证参数的参数:'Identity'。参数为null或空。提供不是的参数 null或empty然后再次尝试命令。“ 在行:6 char:15 + {get-adgroup<<<< $ item -properties * |选择samaccountname,members} + CategoryInfo:WriteError:(:) [Get-ADGroup],ParameterBindingException + FullyQualifiedErrorId:ParameterBindingFailed,Microsoft.ActiveDirectory.Management.Commands.GetADGroup
然而,当我遍历数组时,它返回组名ok
Clear-Host;
$groups = "./desktop/groups.txt"
$arrayofgroups = Get-Content $groups
foreach ($item in $arrayofgroups ) {
$item
}
我已经证实,如果你只是运行以下它就可以了。
get-adgroup "group 1" -properties * | select samaccountname, members
我是VBscript的PowerShell新手,不知道为什么这不起作用,有什么想法?
答案 0 :(得分:2)
在Get-ADGroup
循环内的包含foreach
命令的行上设置PSBreakpoint。在调试器中,键入$Item
以检查$Item
变量的值。也可以尝试输入$Item.Length
来查看它的确切长度。确保源文本文件中没有任何额外的,不必要的空格。