powershell - 检查多个用户并排除重复用户并添加计数
powershell - Check multiple user and exclude duplicate user and add count
我的任务是创建一个可以执行以下任务的脚本。示例:我们有一个域 ABC。
共有4个安全组,名称为A、B、C、D。
Peter 是 A 组和 B 组的成员。
David 是 B 组和 C 组的成员。
约翰是 A 组的成员。
B组也是A组的成员。
我们要查找A、B 组中的用户总数。那些已经在组中的用户将被排除在计数中,这意味着排除重复用户计数。基于以上,该脚本将显示 A & B = 3 个用户的总数,而不是 5 个用户。我尝试编写一个脚本来计算 A 组和 B 组中的用户以及 A 组和 B 组中存在的任何组。如果 John 居住在 A 和 B,脚本将只添加 1 个计数。此外,如果大卫在 B 组但不在 A 组,它将添加 1 个计数。
编辑:在大家的帮助下修改了代码,没有错误。但是显示的结果是空的。
$groups = $A_group, $B_Group
$gm = @()
foreach ($group in $groups) {
$gm += Get-ADGroupMember $group |
where {$_.objectclass -eq 'user'} |
select SamAccountName
}
($gm.samaccountname | Select -Unique).Count
Write-Output $total = ($gm.samaccountname | Select -Unique).Count
由于存在嵌套组 [Groups inside groups],您唯一缺少的是 Get-ADGroupMember
的 -recursive
参数。这也会让用户进入嵌套的 ADGroup B,而不仅仅是返回 ADGroup B 名称。
将此行更改为如下:
$gm += Get-ADGroupMember $group -Recursive | where objectclass -eq 'user' | select SamAccountName
我不知道最后一行在做什么。[似乎是错误和不必要的] 下面这行足以让你得到总数。
$total = ($gm.samaccountname | Select -Unique).count
我的任务是创建一个可以执行以下任务的脚本。示例:我们有一个域 ABC。
共有4个安全组,名称为A、B、C、D。
Peter 是 A 组和 B 组的成员。 David 是 B 组和 C 组的成员。 约翰是 A 组的成员。 B组也是A组的成员。
我们要查找A、B 组中的用户总数。那些已经在组中的用户将被排除在计数中,这意味着排除重复用户计数。基于以上,该脚本将显示 A & B = 3 个用户的总数,而不是 5 个用户。我尝试编写一个脚本来计算 A 组和 B 组中的用户以及 A 组和 B 组中存在的任何组。如果 John 居住在 A 和 B,脚本将只添加 1 个计数。此外,如果大卫在 B 组但不在 A 组,它将添加 1 个计数。
编辑:在大家的帮助下修改了代码,没有错误。但是显示的结果是空的。
$groups = $A_group, $B_Group
$gm = @()
foreach ($group in $groups) {
$gm += Get-ADGroupMember $group |
where {$_.objectclass -eq 'user'} |
select SamAccountName
}
($gm.samaccountname | Select -Unique).Count
Write-Output $total = ($gm.samaccountname | Select -Unique).Count
由于存在嵌套组 [Groups inside groups],您唯一缺少的是 Get-ADGroupMember
的 -recursive
参数。这也会让用户进入嵌套的 ADGroup B,而不仅仅是返回 ADGroup B 名称。
将此行更改为如下:
$gm += Get-ADGroupMember $group -Recursive | where objectclass -eq 'user' | select SamAccountName
我不知道最后一行在做什么。[似乎是错误和不必要的] 下面这行足以让你得到总数。
$total = ($gm.samaccountname | Select -Unique).count