【发布时间】:2015-04-09 02:01:56
【问题描述】:
我正在尝试为每个组获取用户。然后获取有关用户的更多详细信息。
有人可以看到为什么以下内容不起作用吗?
do
{
$Group=@('"Group1"'
'"Group2"',
'"Group3"',
'"Group4"',
'"Group5"')
try{
$Group | ForEach{
ForEach ($member in (Get-ADGroupMember $_ ))
{
$user = Get-ADUser $member -Properties *
$useracc = $user.samaccountname
$userid = $user.EmployeeID
$userout = $useracc + " - " + $userid
write-output $userout | out-file -filepath c:\temp\New.txt -Append -NoClobber
}
}
}
Catch
{
write-output $userout | out-file -filepath c:\temp\error.txt }
}
until ($memeber -eq $Null)
【问题讨论】:
-
至少你错过了 3 个右括号,据我所知,你没有输出任何东西,只是将 $user 一个一个地分配给每个用户,根本不输出它。跨度>
-
这只是一个片段,所有内容都正确关闭,还有更多内容需要关注。
-
至少改变
ForEach循环,这样你就不会重复使用$user,所以ForEach($user in (get-adgroupmember $_))变成ForEach($member in (get-adgroupmember $_)),然后改变$user = Get-ADUser $user -prop *来指定像@这样的专有名称属性987654327@ ...看看是否有帮助。 -
最好的做法是为我们提供可以使用的代码,以便我们可以重复使用它,而不是让我们修复小错误以便进行测试。
-
@TheMadTechnician 你不妨让你的评论成为答案
标签: powershell foreach