Powershell не может получить pwdLastSet из Active Directory

Может ли кто-нибудь обнаружить ошибку в команде Powershell, пытающейся извлечь pwdLastSet из Active Directory для некоторых пользователей ?

Для некоторых учетных записей это работает:

PS C:\> get-aduser -filter "name -like 'Admin*'" -Properties pwdLastSet | Select -first 1 name,pwdLastSet  | format-list

name       : Administrator
pwdLastSet : 131254235816382539

Для некоторых нет:

PS C:\> get-aduser -filter "name -like 'G*Ol*'" -Properties pwdLastSet | Select -first 1 name,pwdLastSet  | format-list


name       : Grzegorz Olędzki
pwdLastSet :

На что следует обратить внимание, что свойство, кажется, установлено при получении из графического интерфейса: Properties dialog of the same user

проблема постоянно затрагивает несколько учетных записей, поэтому я подозреваю, что есть что-то, чего я просто не понимаю.

4
задан 8 December 2016 в 22:38
3 ответа

Дважды проверьте и убедитесь, что вы используете PowerShell от имени администратора. Эта проблема может возникнуть, если у вашего экземпляра нет повышенных прав, поскольку некоторые политики паролей (GPO), вероятно, скрыты.

2
ответ дан 3 December 2019 в 04:08

Вот функция, которую вы можете использовать для тестирования:

function Get-PwdLastSet {
  param(
    [parameter(Mandatory=$true)] [String] $sAMAccountName
  )
  $searcher = [ADSISearcher] "(&(pwdLastSet=*)(sAMAccountName=$sAMAccountName))"
  $searcher.PropertiesToLoad.AddRange(@("pwdLastSet","sAMAccountName"))
  $searchResult = $searcher.FindOne()
  if ( $searchResult ) {
    $pwdLastSet = $searchResult.Properties["pwdlastset"][0]
    if ( $pwdLastSet -gt 0 ) {
      [DateTime]::FromFileTime($pwdLastSet)
    }
    else {
      "Password is expired"
    }
  }
}

Если этот скрипт не может прочитать атрибут pwdLastSet , единственное объяснение, которое я могу придумать, это то, что пользователь при выполнении сценария отсутствует разрешение на чтение этого атрибута из Active Directory. AFAIK, этот атрибут должен быть доступен для чтения по умолчанию для всех членов пользователей домена , поэтому может быть так, что разрешения объекта Active Directory были изменены с значений по умолчанию.

-1
ответ дан 3 December 2019 в 04:08

Если значение pwdLastSet равно null/пусто, это означает, что пользователь должен изменить свой пароль при следующем входе в систему. Сняв флажок в свойствах пользователей, вы увидите дату

0
ответ дан 6 March 2020 в 15:27

Теги

Похожие вопросы