Hi,
I wrote a PS Script to compare users or groups from two different LDAP repositories. This is working fine, as long as I don’t user Write-Progress in the first loop. If I use it, the loop will end after the first run.
The Write-Progress in the inner foreach is working fine.
Any idea?
This is the part of the Script with the Write-Progress:
$x=0 foreach($r in $Results) { $x++ $Res = $r | select -Expand Properties | select @{n='distinguishedName';e={$_.adspath.split("/")[3]}}, @{n=$i.attribute;e={$_.($i.attribute.ToLower())}} $searcher_2.Filter = $res.distinguishedName.split(",")[0] $dis = $searcher_2.FindAll() $dis2 = $dis | select -Expand Properties | select @{n='distinguishedName';e={$_.adspath.split("/")[3]}} if($dis2.distinguishedname -eq $res.distinguishedName) { $y=0 foreach ($i in $PropList) { $y++ if($i.Required -eq "required") { $dis | select -Expand Properties | select @{n=$i.attribute;e={$_.($i.attribute.ToLower())}} [string]$TempSoll = $res.($i.attribute) if ($TempSoll) { if ($tempSoll[0] -eq "0") {$tempSoll = "'" + $tempSoll}} [string]$TempIST = $dis.Properties.($i.attribute.ToLower()) if ($TempIST) { if ($TempIST[0] -eq "0") {$TempIST = "'" + $TempIST}} if ($TempIST -eq $TempSoll) {$TempVergleich = "WAHR"} else {$TempVergleich = "FALSCH"} Add-Content -Path $outfile -Value ($res.distinguishedName + ";" + $dis2.distinguishedname + ";" + $i.Attribute + ";" + $tempSoll + ";" + $TempIST + ";" + $TempVergleich) } Write-Progress -id 2 -Activity "Compare Objects" -Status "Object $i" -PercentComplete ($y / $proplist.count * 100) } } else { Add-Content -Path $outfile -Value ($res.distinguishedName + ";;;;;" + "NA") } Write-Progress -id 1 -Activity "Compare Objects" -Status "Object $r" -PercentComplete ($x / $results.count * 100) }