使用'usnchanged'来调查AD更改的问题(Powershell)

时间:2014-08-18 07:38:49

标签: powershell-v2.0

我一直在为一个名为SuccessFactors的产品编写一个界面,我对它的一个组件有问题。

该脚本的一部分是一个简单的AD提取,但是,我使用adrootdse中以前的最高提交的USN来提取更改(而不是完整的AD提取)。

相关的行显示如下;

$dse = get-adrootdse
$ou = @('**various OU's**')
$activedirectory = $ou | ForEach { Get-ADUser -Filter * -Properties * -SearchBase $_ }
$oldadtimestamp = Get-Content ".\adtimestamp.txt"
$adusers = $activedirectory | where {$_.usnchanged -gt $oldadtimestamp} | foreach {$_}
$dse.highestCommittedUSN > adtimestamp.txt

然后我运行$ adusers并将相关数据输出到一个数组,该数组被导出到循环外的csv。

我遇到的问题是这个;如果我在一天中执行多次提取,它可以正常工作。但是,如果我将其留下一个周末并运行脚本,我将获得一个空的CSV或完整的AD提取。似乎没有任何模式。

我做错了什么?

非常感谢, 汤姆

1 个答案:

答案 0 :(得分:0)

定位单个DC而不是整个域。每个DC都有不同的最高提交的USN

尝试

$dse = get-adrootdse -Server <ServerName>