Powershell get-aduser 未显示所有结果

Powershell get-aduser 未显示所有结果

我正在尝试从 AD 中提取一些数据,但得到了一些令人困惑的结果。我正在运行:

Get-ADUser -Filter * -Properties * | select userPrincipalName, msTSLSProperty01

它向我展示了所有用户,其中 6 个在 msTSLSProperty01 字段中有数据。令人困惑的是,它应该返回 42 个在该字段中有数据的用户。为什么该字段中有数据的用户显示为空白?

编辑 1:此外,当我运行时:

Get-ADUser username -Properties msTSLSProperty01 | select msTSLSProperty01

它返回空集。

答案1

如果您的环境中有多个 DC,如果您期望的更改最近才写入这些用户属性,则您可能只会看到复制延迟。Powershell 可能会查询与您用来验证这些属性是否存在的其他工具不同的 DC。您可以使用命令-Server中的参数明确告诉 PowerShell 与特定 DC 通信Get-ADUser

或者,您可能存在权限问题,导致无法读取部分用户的该属性。

答案2

作为@RyanBolger 的补充回答,此 PowerShell 脚本将查询每个 DC(如果它们未安装 ADWS 服务,则会报告错误)。这可能足以让您确定哪个服务器缺少这些用户;或者至少查看哪些服务器没有缺少这些用户(即,将可能的候选者限制为没有 ADWS 的服务器/通过 PS 查询时出错的服务器)。

clear-host
Get-AdDomainController -Filter * | %{
    $count = 0
    $myError = ''
    try {
        $count = (Get-AdUser -Filter * -server $_.Name).Count
    } catch {
        $myError = $_.ToString()
    }
    (New-Object -TypeName PSObject -Property @{
        Name = $_.Name
        Site = $_.Site
        OS = $_.OperatingSystem 
        Count = $count
        Error = $myError
     })
} | select Name, Count, Site, OS, Error | sort Count, Error, Name | format-table -autosize

相关内容