2011-12-18 15 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ベースのですが、ちょうどドメイン内のすべてのマシンを見つけるに使用されています。 2番目の部分(実際のリモートパスワードをリセットする)は、ADにまったく依存しません。


だから、それは基本的にSetPassword()を呼び出し、その後、WinNT://<ComputeName>/<UserName>に結合しています。


そして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ありがとう!不幸にも私自身の知識不足が私をここに戻してくれます。私はこれらのスクリプトをC#にどのように翻訳するのかわからないし、C#のソリューションは、ManagementObject ....の代わりにDirectoryEntryオブジェクトを使用しているので、実際にはこれで前進することはできない。 – JanivZ

関連する問題