问题描述
我正在尝试使用USNChanged进行某种AD同步,并使用USNChanged属性检索所有对象,但是整个过程对我来说有点神秘。
我有一个PowerShell代码,基本上可以满足我的需要,但是我想知道是否有人可以帮助我将其转换为C#代码。我会很感激的。
PS代码:
$highestCommittedUSN = (Get-ADRootDSE -server $preferredDC -properties * | select-object -property highestCommittedUSN).highestCommittedUSN
$lowUSN = 0
$highUSN = 0
for ($i=1000; $i -le $highestCommittedUSN ; $i=$i+10000 ) {
[system.gc]::Collect()
$error.clear()
$highUSN=$i
write-host "(&(usnChanged>=$lowUSN)(usnChanged<$highUSN))"
$adobjects = (Get-Adobject -LDAPFilter "(&(usnChanged>=$lowUSN)(usnChanged<=$highUSN))" -Server $preferredDC -Properties * -IncludeDeletedobjects)
($adobjects).count
if ($error.count -lt 0) {
for ($j=$lowUSN; $j -le 490767138; $j=$j+1 ) {
">>> " + $j
$adobjects = Get-Adobject -LDAPFilter "(usnChanged=$j)" -Server "DCName" -Properties * -IncludeDeletedobjects
$adobjects | ConvertTo-Json | Out-File -FilePath ff.json -Append
if ($error.count -ge 1) {
"There is problem with this USN " + $j + " on " + $preferredDC | Out-File -FilePath badUSN.txt -Append
$adobjects.distinguishedname
}
$adobjects.distinguishedname
}
}
$lowUSN=$highUSN
$adobjects.distinguishedname
$adobjects = $null
$error.clear()
}
我确实在这里找到了类似的问题:How to read "uSNChanged" property using C#,但是我不确定是否可以使用该答案。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)