我目前有一个文本文档,其中包含我们环境中的所有组及其成员,这些组具有修改成员资格的权限/访问权限。
文本文件的格式如下:
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
}
答案 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
}
}
}