我一定在做一些愚蠢的事情,但是如果我能看到什么的话,我会很尴尬的。 根据我的谷歌search这个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:
所以它find了组,但没有列出成员。 我已经在Server 2003和Server 2008上试了这个,我不知道我明显的错误在哪里。 请帮忙 …
JR
我从来没有在PowerShell中做过,但是我在VBScript中看到了同样的问题。
如果域用户是用户的主要组,那么该用户将不会显示为成员。 尝试将您的主要组更改为其他内容,然后再次运行您的脚本。
嗯。 它为我工作。 你是以脚本的forms运行还是以交互方式input?
如果在交互式会话中input(或粘贴)后,您将得到一个>>提示符,然后再次点击input,看看是否得到结果。
当然,假设你的组中实际上有用户;)
奇怪的是,域用户组似乎没有成员属性。 如果我查询我的域中的另一个组,我得到的属性。
我在ADSI Edit中查看了该组,成员属性为空。
我将进入ADSI编辑并检查域pipe理员组的成员属性,并查看是否有任何条目。
至于为什么他们不在那里,以及这个组织是如何获得成员资格的,我不太确定,并且会对自己的答案感到好奇。
这是Powershell 1.0或2.0? 我在Powershell 2.0上运行它,我也有空白输出。 但是,在做一个“$ group | get-member”之后,我看到有一个名为“MemberOf”的属性(没有列出只是“member”)。
在这种情况下,如果您将最后一行更改为:
foreach ($member in $group.memberOf) { $member }
在这个变化之后,我得到了所需的输出。