【问题标题】:How to count the result of a if loop within foreach loop如何计算foreach循环中if循环的结果
【发布时间】:2016-12-24 04:43:10
【问题描述】:

有没有比使用此方法更好的方法来计算空组的数量,然后为每个结果调用 $count + 1?我试图弄乱$123.count,但它一直返回0

$Groups = Get-ADGroup -Properties * -Filter * | where { $_.Members.Count -eq 0}
$123= Foreach($G In $Groups)
{
    $Membership = Get-ADGroupMember -Identity $G.Name
    If($Membership.count -eq 0){
    $Count = $count + 1
    }

}

【问题讨论】:

  • @($Groups).Count
  • @MathiasR.Jessen 那只会给出空组,但这些组仍然可以是某物的成员。我希望 $groups 已经通过 $Membership.count -eq 0
  • 那么你想计算没有成员并且本身不是任何组成员的组的数量吗?
  • @MathiasR.Jessen 正确。我也不想使用“$count +1”

标签: powershell if-statement foreach powershell-4.0


【解决方案1】:

Get-ADGroup 可以在不离开 AD 的情况下完成您所要求的大部分工作。

使用 Filter 参数来完成这项工作是很痛苦的。然而,LDAP 过滤器很简单。

对于空组:

Get-ADGroup -LdapFilter "(!member=*)"

对于也没有嵌套在其他组中的空组:

Get-ADGroup -LdapFilter "(&(!memberOf=*)(!member=*))"

【讨论】:

    猜你喜欢
    • 2014-12-05
    • 2018-10-22
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2017-03-10
    • 2021-05-28
    相关资源
    最近更新 更多