Powershell(RSAT)을 사용하여 AD에서 비밀번호 재설정(Win Server 2008)

Powershell(RSAT)을 사용하여 AD에서 비밀번호 재설정(Win Server 2008)

나는 온라인에서 찾은 powershell 스크립트를 사용하여 win7 CPU를 사용하여 RSAT를 통해 Windows Server 2008에서 원격으로 암호를 변경하려고 합니다. 현재 서버 2008과 win7은 VM이고 win7 CPU는 서버에 도메인되어 있으며 powershell용 Active Directory 모듈을 올바르게 실행할 수 있습니다. 저는 Powershell을 처음 사용하고 서버를 다루는데 [이 프로젝트는 인턴쉽 중 훈련입니다], 이 스크립트를 컴파일하려고 하면 오류가 발생합니다.

import-Module ActiveDirectory
Function Set-AdUserPwd 
{ 
    Param( 
    [string]$user, 
    [string]$pwd 
    ) #end param 
    $oUser = [adsi]"LDAP://$user" 
    $ouser.psbase.invoke("SetPassword",$pwd) 
    $ouser.psbase.CommitChanges() 
} # end function Set-AdUserPwd 
    Set-AdUserPwd -user "cn=test,ou=Users,dc=ifrit,dc=local" -pwd P@ssword1

Exception calling "Invoke" with "2" argument(s): "There is no such object on the server.
"
At line:10 char:25
+     $ouser.psbase.invoke <<<< ("SetPassword",$pwd) 
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

나는 'invoke'가 powershell 3에만 있는 것이라고 생각했는데, technet 기사를 보면 powershell 2에도 적용된다고 나와 있습니다. AD에 'test'라는 계정이 있지만 이것이 실제 일반 이름인지 확실하지 않습니다(이름: Test, 성: Test, 사용자 로그온 이름:[이메일 보호됨]) 예외가 내가 잘못된 CN을 가지고 있다는 것을 언급하는지 아니면 완전히 다른 것인지 누군가 말해 줄 수 있습니까?

답변1

위의 의견에 동의합니다.

ADSI(Active Directory 스크립팅 인터페이스)에 대한 참조를 삭제할 수 있습니다. 이는 "기존" 작업 방식이기 때문입니다. Active Directory PS 모듈은 이를 대체하도록 설계되었습니다.

따라서 귀하의 경우에는 먼저 사용자 개체가 존재하는지 확인해야 합니다. 다음을 사용하여 이 작업을 수행할 수 있습니다.Get-ADUsercmdlet은 선택한 검색 기준에 따라 달라집니다. 이제 이 단계에서는 검색을 상당히 규범적으로 만들 것을 제안합니다. 즉, 하나의 사용자 개체만 반환합니다. 예:

try {
    $objUser = Get-ADUser -Filter { Name -eq $user }
    //
    // rest of code here
    //
    }
catch{
    Write-Host "ERROR : Failed to locate user.";
    }

그런 다음세트-ADAccountPassword암호를 재설정하는 cmdlet입니다(하이퍼링크 참조). 이를 위해서는 사용자의 고유 이름(DN)이 필요하며, 이는 귀하의 속성이 됩니다.$obj사용자반환된 객체Get-ADUser부르다.

여기서는 테스트할 수 없으므로 대화형 PowerShell 프롬프트에서 시도하면 해당 속성에 어떤 속성이 있는지 확인할 수 있습니다.$obj사용자물체:

$test = Get-ADUser -Filter { Name -eq "jimbob" }
$test | Get-Member

나는 다음이 있다고 의심한다.DN또는고유 이름하지만 제가 말했듯이 여기서는 테스트할 수 없습니다.

추가 지원이 필요하면 진행 상황을 여기에서 업데이트하세요...

관련 정보