Powershell - 비밀번호 재설정을 통해 AD에서 사용자 자격 증명 테스트

Powershell - 비밀번호 재설정을 통해 AD에서 사용자 자격 증명 테스트

Powershell을 사용하여 사용자가 Active Directory에서 인증하는지 확인할 수 있습니다.

Function Test-ADAuthentication {
    param($username,$password)
    (new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null
}

Test-ADAuthentication "test" "Password1"

그러나 나는 평생 동안 다음을 수행하는 방법을 알 수 없습니다.

  1. 비밀번호를 재설정해야 하는지 확인하세요.
  2. 전송된 자격 증명이 마지막 비밀번호에서 작동했는지 확인했습니다.

이 문제를 어떻게 해결할 수 있습니까?

답변1

자격 증명은 프로세스를 실행하여 테스트할 수 있습니다. 아래의 예는,

Start-Process -FilePath cmd.exe /c -Credential (Get-Credential -UserName $username -Message 'Test Credential')

또는 간단하게:

Start-Process -FilePath cmd.exe /c -Credential (Get-Credential)

비밀번호를 입력하라는 메시지가 표시됩니다. 문자열에서 비밀번호를 읽어야 하는 경우(나쁜 습관) 사전에 자격 증명 개체를 초기화해야 합니다. 해당 방법에 대한 자세한 내용은 도움말에서 확인할 수 있습니다.

Get-Help Get-Credential

답변2

비밀번호가 만료되기 전에 특정 사용자의 남은 일수를 확인하는 방법은 다음과 같습니다.

(([datetime]::FromFileTime((Get-ADUser user -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed")) - (Get-Date)).TotalDays

숫자가 0이거나 음수이면 비밀번호가 만료된 것입니다.

이 명령은 사용자 계정이 잠겨 있는지 확인합니다.

(Get-ADUser user -Properties LockedOut).LockedOut

두 번째 질문은 - 내가 올바르게 이해했다면 현재 입력한 비밀번호가 이전에 사용한 비밀번호와 같은지 확인하고 싶을 것입니다.

내가 아는 한 이는 불가능합니다. 특정 정책을 사용하면 AD는 이전 비밀번호를 기록할 수 있지만 외부 액세스에는 노출되지 않습니다.

관련 정보