我一定在做一些愚蠢的事情,但如果我能看到什么,我该死的。根据我的谷歌搜索,这个 Powershell 脚本应该列出域用户组的成员:
$root=([ADSI]"").distinguishedName
$group = [ADSI] ("LDAP://cn=Domain Users,cn=Users," + $root)
Write-Host $group.distinguishedName
Write-Host "Members:"
foreach ($member in $group.member)
{
$member
}
但是当我运行它时,我只会得到输出:
CN=Domain Users,CN=Users,DC=mydomain,DC=local
Members:
所以它可以找到组但没有列出成员。我已经在 Server 2003 和 Server 2008 上尝试过这个,但我不知道我明显的错误在哪里。请帮忙 ...
JR
我从来没有在 PowerShell 中这样做过,但我在 VBScript 中看到过同样的问题。
如果域用户是用户的主要组,则该用户不会显示为成员。尝试将您的 Primary Group 更改为其他内容,然后再次运行您的脚本。
唔。它对我有用。您是将其作为脚本运行还是以交互方式输入?
如果在交互式会话中按回车(或粘贴)后收到
>>
提示,则再次按回车并查看是否得到结果。当然,假设您的组中确实有用户;)
奇怪的是,域用户组似乎没有成员属性。如果我查询我域中的另一个组,我会得到属性。
我在 ADSI Edit 中查看了组,成员属性为空。
我会进入 ADSI Edit 并检查域管理员组的成员属性,看看那里是否有任何条目。
至于他们为什么不在那里以及该小组如何获得其成员资格,我不太确定,我自己也很想知道答案。
这是 Powershell 1.0 还是 2.0?我在 Powershell 2.0 上运行它,我也得到了空白输出。但是,在执行“$group | get-member”之后,我看到有一个名为“MemberOf”的属性(没有列出“成员”)。
在这种情况下,如果您将最后一行更改为:
进行此更改后,我得到了看起来像所需的输出。