- PR -

WMIのVBサンプルコードをC#に

1
投稿者投稿内容
サビ
会議室デビュー日: 2004/10/06
投稿数: 7
投稿日時: 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
投稿数: 7
投稿日時: 2004-10-06 17:02
以下のページを参考にしました。
http://homepage3.nifty.com/dotnetfan/console/console24.html

mo.InvokeMethod("Reboot",ss);
のRebootの個所をそのまま実行したいEXEに書き換えました。
上記行で、「このメソッドはどのクラスにも実装されていません。」
となるので調査中です。

上記、VBとC#の2つを見比べても、メソッド名などまったく違うので
VBを参考にC#への道が険しく感じます。。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 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/06
投稿数: 7
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)