Powershell,我读了一行,这是一个组,以下几行是成员



我目前有一个文本文档,其中包含我们环境中的所有组及其具有修改成员资格的权限/访问权限的成员。

文本文档的格式如下:

group1
member1
member2
member3
blankline
group2
member4
member2
member1
blankline
group3
member6
blankline

我正在尝试在组中读取,然后验证每个成员是否实际上都在具有 -managedby 属性的组中。

$List = Get-Content $File
For ($i=0; $i -lt $List.length; $i++)
{
    Get-qADGroup $List[$i]
    $i += 1
    If($List[$i] -eq " "){
        Write-Host "test"
        }
    else{
            do{
                Write-Host $List[$i]
                $i += 1
            }until ($List[$i] -eq " ")
        }
        #$count = 0
        #$i += $count + 1
}

这将给你留下一个对象$Groups,该对象将包含每个组的记录,并且它的成员作为该记录中的一个数组,因此您可以执行foreach($group in $groups){get-qadgroup $group|compare-object $_ $group.members}或类似操作。 以查找差异。

$List = gc $File
$Groups=@()
$Members=@()
$GroupName = $List[0]
$ii=1
while($Null -eq $Null){
    if($List[$ii]){
        $Members+=$List[$ii]
        $ii++
    }else{
        break
    }
}
$Group=[PSCustomObject]@{Group=$GroupName;Members=$Members}
$Groups+=$Group
$Blanks = for($i=0; $i -lt $list.count;$i++){if(!$List[$i]){$i}}
foreach($Blank in $Blanks){
    $Members = @()
    $GroupName = $List[$Blank+1]
    $ii=2
    while(($Blank+$ii) -le $List.Count){
        if($List[$Blank+$ii]){
            $Members+=$List[$Blank+$ii]
            $ii++
        }else{
            $Group=[PSCustomObject]@{Group=$GroupName;Members=$Members}
            $Groups+=$Group
            break
        }
    }
}

最新更新