[Q] Powershell을 이용해서 사용자 암호를 Reset 하나요?

Windows 10 + RSAT (Remote Server Administrator Tools) 환경에서 Windows 2012R2 서버에 리모트로 접근해서 테스트 진행한 환경 입니다.

보통 사용자 계정 암호를 reset 하는 행위는 몇몇가지 이외에는 없습니다.

  1. 본인의 암호를 분실 했을 때
  2. 내부 암호 변경 정책 일자가 초과하여 계정이 잠겼을 때

기본 문법은 다음과 같습니다.

Set-ADAccountPassword
[-WhatIf]
[-Confirm]
[-AuthType ]
[-Credential ]
[-Identity]
[-NewPassword ]
[-OldPassword ]
[-Partition ]
[-PassThru]
[-Reset]
[-Server ]

 

위에 설명된 기본 문법을 보면 잘 이해가 안될수도 있습니다. 아래 실제 사용하는 샘플을 보시면 보다 빠르게 이해가 될거라고 생각하며, 사용자 환경 또는 서버 환경에 따라 변경이 필요한 경우가 있음을 알려 드립니다.

Example1: Set a password for a user account using a distinguished name

Set-ADAccountPassword -Identity ‘CN=Elisa Daugherty,OU=Accounts,DC=Fabrikam,DC=com’ -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “p@ssw0rd” -Force)

 

위 문법은 특정 서버를 지정하지 않고, 원격 AD 서버에 직접 접속해 Powrshell을 이용해 사용자 계정을 리셋하는 행위 입니다. -Identity 옵션 뒤에 사용자 계정 정보를 입력해도 되며, 위와 같이 distinguished name을 입력해도 됩니다. 개인적으로 계정 정보를 입력하는게 훨씬 보기 좋고 빠르다고 생각 합니다.

Example2: Prompt a specified user to change their password

Set-ADAccountPassword -Identity EvanNa

Please enter the current password for ‘CN=Evan Narvaez,CN=Users,DC=Fabrikam,DC=com’
Password:**********
Please enter the desired password for ‘CN=Evan Narvaez,CN=Users,DC=Fabrikam,DC=com’
Password:***********
Repeat Password:***********

 

위에 문법은 사용자에게 Password 정보를 직접 입력받아 처리하는 샘플 입니다. 직접 자리로 찾아가 암호를 입력하게 하거나 (보안상 문제로) 또는 본인의 암호를 직접 입력하기를 희망하시는 분들에게 제공하는 옵션이라고 보시면 됩니다.

그렇다면 원격 서버에 해당 요청하는 문법은 아래를 참고 하시기 바랍니다.

Example3: Connection remote server and user to change password

Set-ADAccountPassword -Identity “employee acocunt name” -Server “remote AD domain name” -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “P@ssw0rd” -Force)

 

전체적인 설명은 길지만, 결론은 심플 합니다. (ConvertTo-SecureString -AsPlainText “P@ssw0rd” -Force) 항목을 잊지 말고 외우시고, 암호 리셋 진행 시, 반드시 위에 문법을 입력하시면 됩니다. 위에 설정을 간략하게 설명드리면 다음과 같습니다.

  1. ConvertTo-SecureString: 암호화된 문자열을 받기 위한 인자
  2. AsPlanText: Plan Text 값을 받기 위한 인자
  3. Force: 별도의 승인 절차 없이 즉시 적용 인자

Leave a Comment