【问题标题】:Count Active Directory users计算 Active Directory 用户
【发布时间】:2018-03-02 09:51:36
【问题描述】:

下面的代码应该对用户进行计数和比较并输出总计数,但不知何故结果为空。我需要做什么来修复它?

$groups = $A_group, $B_Group
$gm     = @()

foreach ($group in $groups) {
    $gm += Get-ADGroupMember $group -Recursive |
           `where {$_.objectclass -eq 'user'} |`  
           ' select SamAccountName'
}

($gm.samaccountname | Select -Unique).Count
Write-Output total: ($gm.samaccountname | Select -Unique).Count

【问题讨论】:

  • 您的管道语法已损坏。删除反引号和单引号。

标签: powershell active-directory powershell-2.0


【解决方案1】:

您可以通过一种更类似于 powershell 的方式来做到这一点。

$groups  = $A_group, $B_Group
$uniqueMemberCount = $groups |
    Get-ADGroupMember -Recursive |
    Where-Object {$_.objectClass -ieq "user"} |
    Select-Object -Unique |
    Measure-Object |
    Select-Object -ExpandProperty Count

Write-Output "Total: $uniqueMemberCount"

【讨论】:

  • 我明白了。如何将这个写入输出“Total: $uniqueMemberCount”导出到 CVS?
  • 现在开始工作!!非常感谢!
【解决方案2】:

我想你想计算两个组的唯一成员:

$aGroup = @('a','b','c')
$bGroup = @('b','c','e','f')
(Compare-Object $aGroup $bGroup -IncludeEqual).count

【讨论】:

  • 没错,也算嵌套组。有数百个用户,所以你提到的代码是行不通的。
  • 你的问题没有说明计算嵌套组。
猜你喜欢
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
相关资源
最近更新 更多