隣の端末のAdministratorのパスワードを変える方法

といっても、既にそこの端末にnet use 経由などでadministratorでログオンできる状況下じゃないと通らないのだが。
ワークグループ運用だと


function changepass(computername, username, password){
var user = GetObject("WinNT://" + computername + "/" + username);
user.SetPassword(password);
}

var ret = changepass("隣のコンピュータ名", "administrator", "admin");
// retにはどうやら常に値が入らないようだ。

とかやると、「隣のコンピュータ名」のadministratorのパスワードを admin に、できる。
惜しいのはパスワード変更の成功/失敗を返り値で取れないこと。
成功失敗を見たいならば、たとえばこういう感じで。

// net use コマンドが出す標準出力を判定材料にする例
var Wsh = WScript.CreateObject("WScript.Shell");
var execresult = Wsh.Exec("net use \\隣のコンピュータ名\IPC% admin /user:隣のコンピュータ名\administrator");
while(execresult.Status == 0)
WScript.Sleep(100);
var strResult = execresult.StdOut.ReadAll();
// strResultにコマンドの結果が入るので成功失敗を判定できる
すごいことにActiveDirectory環境下だと、全端末のパスワードとか、変えられて、管理者というか支配者チックに!
とはいっても、当然ユーザードメインと権限の壁に届く範囲に限られるのだけれど。
NASのようなストレージ空間を複数端末で作っていて、月に一度、一斉にパスワードを変えたい、とか、
そういう場合に便利だと思う。


参考:
http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/oct04/hey1015.mspx


関係ないけど、ADSIを調べてて、こんなのを見つけた。
http://www.microsoft.com/japan/technet/scriptcenter/tools/admatic.mspx
ツールの中身の出来はしらないのだが、とにかく笑ってしまった。
XBoxは全然関係ないがな。