在PowerShell脚本中缺少Get-ADUser / MemberOf命令的结果

时间:2016-02-29 16:36:27

标签: powershell active-directory

我正在尝试编写一个脚本,它将遍历域帐户并打印出他们所属的用户名和组:

$Users = Get-ADUser -Filter * -SearchBase "CN=Individual Accounts,CN=Users,DC=royprdt,DC=royston,DC=com"
ForEach($User in $Users){
$GetMembership = Get-ADUser -Identity $User.SamAccountName -Properties *;
$GroupMembership = ($GetMembership.memberof | % { (Get-ADGroup $_).Name; }) -join ';';
$User.Name + ';' + $GroupMembership;
}

我遇到的问题是,对于域中约3/4的用户,不会返回任何组。

例如,对于User1以下代码:

$User = Get-ADUser -Identity 'User1' -Properties *;
($User.memberof | % { (Get-ADGroup $_).Name; }) -join ';';

按预期返回“ProcessControlAdmin”。

对于User2,相同的代码不返回任何内容。没有错误,只是一个空白行。

在ADUC中进行比较时,两个帐户似乎配置相同(除了组成员资格)。如果我使User1成为与User2相同的组的成员,它们在查询时显示正常。如果我使User2成为与User1相同的组的成员,我仍然没有得到任何返回。

我尝试过使用DSQuery / DSGet并获取为User1返回的所有组(包括“域用户”)。对于User2,我只获得“域用户”组。

我假设我以某种方式错误地配置了用户......任何人都可以对我可能做的事情有所了解吗?谢谢!

2 个答案:

答案 0 :(得分:0)

让我直截了当地说,您希望列出您域中所有计算机的列表,以及它所属的组,在一行中,所有分号都是分隔的?

ex:User1; ProcessControlAdmin; ProcessControlUser; Printer1; ...

试试这个:

mTextView.setAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.flash_leave_now));

答案 1 :(得分:0)

发现它!当我显示lastLogon属性时,我看到对于没有显示组的用户,他们也从未登录过域。对于已登录至少一次的用户,他们的群组显示正确。