2011-12-18 4 views
2

WMI를 사용하여 원격 컴퓨터에서 사용자 암호를 변경하는 방법이 있습니까? 나는 이것에 대한 자원을 찾을 수 없었다. 그래서 어떤 도움을 주시면 감사하겠습니다.WMI- 원격 컴퓨터에서 사용자 암호 변경

감사

UPDATE 빠른 응답에 대한 모든 감사의 최초! 너희들 규칙!

난 그냥 다시 ... 우리는 Active Directory를 사용하지 않는 나는 C#에서 내 코드를 작성하는 데 필요한 추가

감사하고 싶습니다 - 지금

+1

원격 컴퓨터에서 Active Directory를 통해 연결되어 있습니까? 그렇다면 [여기] (http://blogs.technet.com/b/heyscriptingguy/archive/2004/10/15/how-can-i-change-a-user-s-password.aspx)를 참조하십시오. 당신은 C# 코드를 꽤 쉽게 번역 할 수 있어야합니다 ... –

+1

[다른 질문에 대한 링크를 포함하도록 내 답변을 업데이트했습니다] (http://stackoverflow.com/questions/234845/change-local-administrator) -password-in-c-sharp)을 사용하면 로컬 변경 사항에 대해 이야기하지만 최종 코드는 원격 시스템에서도 작동해야하는 것처럼 보입니다. 이미 C#에 있습니다. –

답변

3

바로 잘 제시 무슨에 병 모양, 이러한이 Hey Scripting Guy column에서 VB 스크립트의 예입니다,하지만 그들은 번역해야한다 :

가 어떻게이 OU의 모든 컴퓨터에 대한 로컬 관리자 암호를 변경하려면 어떻게해야합니까?

Set objOU = GetObject("LDAP://OU=Finance, DC=fabrikam, DC=com") 
objOU.Filter = Array("Computer") 

For Each objItem in objOU 
    strComputer = objItem.CN 
    Set objUser = GetObject("WinNT://" & strComputer & "/Administrator") 
    objUser.SetPassword("i5A2sj*!") 
Next 

첫 번째 부분은 AD 기반이지만, 단지 도메인에있는 컴퓨터의 모두 찾을 에 사용되고있다. 두 번째 부분 (실제 원격 암호 재설정)은 AD에 전혀 의존하지 않습니다.


그래서, 그것은 기본적으로 다음 WinNT://<ComputeName>/<UserName>에 결합 SetPassword()를 호출합니다.


그리고 local admin account password 변경에 대한이 다른 SO 문제는 C#으로 이미 :

public static void ResetPassword(string computerName, string username, string newPassword) { 
     DirectoryEntry directoryEntry = new DirectoryEntry(string.Format("WinNT://{0}/{1}", computerName, username)); 
     directoryEntry.Invoke("SetPassword", newPassword); 
} 
+0

하, 나 * 단지 * 코멘트와 똑같은 것을 올렸다. 그러나 이것은 효과가있다. –

+1

@CodyGray - 누구나 WMI를 사용하여 * X *를 언급 할 때마다 가장 먼저 본 "Hey Scripting Guy"콘텐츠 검색 :-) –

+0

Damien_The_Unbeliever thanks! Unfortunatly 그 knowlage thats의 나의 자신의 부족은 나를 뒤로 붙들고있다. 아니 그 스크립트를 C#으로 번역하는 방법을 모르겠와 C#에서 솔루션 DirectoryEntry 대신 ManagementObject 말 .... 개체를 사용하므로 정말이 앞으로 이동할 수 없습니다. – JanivZ

관련 문제