본문 바로가기
Windows_Server/bat & PowerShell 스크립트

Active Directory 사용자 패스워드 강제 변경 스크립트

by 프리윙즈 2023. 2. 5.
728x90
반응형

Active Directory에 연결되어 있는 2000명 이상의 사용자를 일일이 조회하여 강제 변경하기 어려워

연결되어 있는 사용자 패스워드를 일괄로 강제 변경하기 위해 작성한 스크립트 입니다.

 

해당 스크립트는 패스워드 변경일이 지난 사용자를 조회해서 

패스워드 사용 기간을 만료시켜 사용자가 강제로 패스워드를 변경하도록 하는 스크립트 입니다.

 

아래 seoul 사용자의 계정 정보 입니다.

" 암호 사용 기간 제한 없음 " 이 체크되어 있습니다.

" 암호 사용 기간 제한 없음 " 체크를 해제시키고,

" 다음 로그온 시 사용자가 반드시 암호를 변경해야 함 " 항목을 체크하여

사용자가 스스로 변경하도록 유도하는 스크립트 입니다.

작성한 스크립트 입니다.  PowerShell로 실행하였습니다.

Import-Module ActiveDirectory

$days = 7
$time = [DateTime]::Today.AddDays(-$days)

# 7일 이내에 AD암호 변경 기록 없는 사용자 SamAccountName만 선택 출력
$change = Get-ADUser -Filter '(PasswordLastSet -lt $Time)' -Properties PasswordLastSet | select SamAccountName
 
# change에서 출력된 SamAccountName 정보를 $user로 사용
foreach ($user in $change.SamAccountName)
{
            
            #대상 사용자 정보 표시
            Write-Host $user

            #[암호 사용 기간 제한 없음] 값 체크 해제
            Set-ADAccountControl $user -PasswordNeverExpires $false 

            #[다음 로그온 시 사용자가 반드시 암호를 변경해야 함] 값 체크
            Set-ADUser -Identity $user -ChangePasswordAtLogon $True   
                       
        }

작성한 스크립트를 실행했습니다.

seoul 이라는 대상자가 표시 되었네요.

 

아래는 스크립트가 적용된 seoul 사용자의 계정 정보 입니다.

" 암호 사용 기간 제한 없음 " 이 체크해제 되었고,

" 다음 로그온 시 사용자가 반드시 암호를 변경해야 함 " 항목을 체크 되었습니다.

 

이제 seoul 사용자는 PC 사용 시 패스워드 변경해야만 접속이 가능하게 됩니다.

 

반응형

댓글