Powershell,我读了一行,下面一行是成员

时间:2014-02-10 16:33:46

标签: powershell powershell-v2.0

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

文本文件的格式如下:

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

}

1 个答案:

答案 0 :(得分:0)

这将为您留下一个对象$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
        }
    }
}