
Powershell을 사용하여 사용자가 Active Directory에서 인증하는지 확인할 수 있습니다.
Function Test-ADAuthentication {
param($username,$password)
(new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null
}
Test-ADAuthentication "test" "Password1"
그러나 나는 평생 동안 다음을 수행하는 방법을 알 수 없습니다.
- 비밀번호를 재설정해야 하는지 확인하세요.
- 전송된 자격 증명이 마지막 비밀번호에서 작동했는지 확인했습니다.
이 문제를 어떻게 해결할 수 있습니까?
답변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는 이전 비밀번호를 기록할 수 있지만 외부 액세스에는 노출되지 않습니다.