如果您要计算组中成员的数量,则根本不需要变量。
(Get-QADGroupMember MSprojectXP).Count
但是,如果您需要成员列表进行其他处理,请将结果存储Get-QADGroupMember
在一个变量中:
$MSprojectXPUsers = Get-QADGroupMember MSProjectXP
然后你可以这样计算:
$MSProjectXPUsers.Count
根据评论/后续问题更新:
add-pssnapin Quest.ActiveRoles.ADManagement;
$TotalUsers = 0;
Get-QADGroup MSProject*|foreach-object{$TotalUsers += (Get-qadgroupmember $_.Name).Count};
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms");
[System.Windows.Forms.MessageBox]::Show("Total number of users in MSProject* groups`n`n$TotalUsers" , "Results");
我个人的偏好是在使用命令行脚本时不使用消息框,因为它不是控制台环境的“原生”。在这种情况下,单行就足够了(为清楚起见,换行符假设已加载管理单元):
$TotalUsers = 0;Get-QADGroup MSProject*|`
foreach-object{$TotalUsers += (Get-qadgroupmember $_.Name).Count};`
"Total users in MSProject* groups: $TotalUsers";
如果您有可用的 AD 模块,您也可以在没有 Quest Snapin 的情况下尝试它。:
$TotalUsers = 0;Get-ADGroup -filter {name -like "MSProject*"}|`
foreach-object{$TotalUsers += (Get-ADGroupmember $_.DistinguishedName).Count};`
"Total users in MSProject* groups: $TotalUsers";
这对我不起作用,但这似乎是由于我的一个小组出现问题 - 如果我过滤掉那个问题组,它工作正常。