Я пытаюсь получить данные из AD, но получаю непонятные результаты. Я бегу:
Get-ADUser -Filter * -Properties * | select userPrincipalName, msTSLSProperty01
и он представляет мне всех пользователей, 6 из которых имеют что-то в поле msTSLSProperty01. Смущает то, что он должен вернуть 42 пользователя с чем-то в этом поле. По какой причине он отображается пустым для пользователей, у которых есть данные в этом поле?
Изменить 1: Кроме того, когда я бегу:
Get-ADUser username -Properties msTSLSProperty01 | select msTSLSProperty01
он возвращается и пустой набор.
Если в вашей среде несколько контроллеров домена, вы можете просто наблюдать задержки репликации, если ожидаемые изменения были недавно записаны в эти атрибуты пользователя. Powershell может запрашивать другой DC, чем любой другой инструмент, который вы используете для проверки существования этих атрибутов. Вы можете явно указать PowerShell разговаривать с конкретным контроллером домена с помощью -Server аргумент в Get-ADUser команда.
Кроме того, у вас могут быть проблемы с разрешениями, не позволяющие вам прочитать этот атрибут для подмножества ваших пользователей.
В качестве дополнения к @ RyanBolger's ответ, этот сценарий 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