- - PR -
WMIのVBサンプルコードをC#に
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-10-06 16:23
C# + WMIを使用して、リモートマシン
上のEXEを起動したいです。 WMIのサンプルコードにVBのものは豊富にあるの で、これを参考にC#にコードに書き換えしたいのですが、 書き換えの手がかり、参考にする情報がわかりません。 過去スレッドの「リモートマシン上のEXEを実行」に ある以下のコードをまず、C#に書き換えたいです。 ご教授ください。 ***引用*** Set objLocator = CreateObject( "WbemScripting.SWbemLocator" ) Set objWMIService = objLocator.ConnectServer ( strComputer, , strUser, strPassword ) Set objPrc = objWMIService.Get("Win32_Process") intRet = objPrc.Create(strProcess, Null, Null, intPid) **引用ここまで** |
|
投稿日時: 2004-10-06 17:02
以下のページを参考にしました。
http://homepage3.nifty.com/dotnetfan/console/console24.html mo.InvokeMethod("Reboot",ss); のRebootの個所をそのまま実行したいEXEに書き換えました。 上記行で、「このメソッドはどのクラスにも実装されていません。」 となるので調査中です。 上記、VBとC#の2つを見比べても、メソッド名などまったく違うので VBを参考にC#への道が険しく感じます。。 |
|
投稿日時: 2004-10-07 11:53
notepad.exeを呼び出す例がManagementObjectのInvokeMethodメソッドの
サンプルとして記述されています。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemmanagementmanagementobjectclassinvokemethodtopic1.asp リモートマシンで実行させるためのアクセス部分は上記のサイトの 内容が参考になるはずです。 |
|
投稿日時: 2004-10-07 12:59
小野さんありがとうございます。
教えていただいたページを元に、msdn内でそれらしいクラス、 メソッドを検索&試すを繰り返し、動作するコードができました。 なぜか、 ManagementClass.InvokeMethod ○ ManagementObject.InvokeMethod × となるのですが、また地道にmsdnの中を読み進めます。。 ** (参考) C# WMIでリモートマシンのEXEを実行 ** ConnectionOptions options = new ConnectionOptions(); options.Username = "ユーザ名"; options.Password = "パスワード"; string mPath = @"\\" + "リモートマシン名" + @"\root\cimv2"; ManagementScope scope = new ManagementScope(mPath, options); ObjectGetOptions o = new ObjectGetOptions(); ManagementPath p = new ManagementPath("Win32_Process"); ManagementClass processClass = new ManagementClass(scope,p,o); //Create an array containing all arguments for the method object[] methodArgs = {"c:\\Windows\\notepad.exe", null, null, 0}; //Execute the method object result = processClass.InvokeMethod ("Create", methodArgs); *** |
1