- WMI Fun !! -|WMI StepWMI SampleSearchWMI Fun !! GroupsAbout WMI Fun !!
Top Page >> WMI Step >> リモートコンピュータへアクセス
リモートコンピュータへアクセス
Topics

「前のコードの説明」で紹介したConnectServerメソッドを使用してリモート上のコンピュータに対してメモ帳を起動してみましょう。以下のサンプルコードを打ち込んでください。


Sample Code

Private Sub Command1_Click()

Dim Prc As SWbemObject
Dim Locator As SWbemLocator
Dim Service As Object
Dim Ret As Long
Dim PID As Long
Dim MesStr As String

Set Locator = New WbemScripting.SWbemLocator
Set Service = Locator.ConnectServer("LONDON", , "administrator", "password")
Set Prc = Service.Get("Win32_Process")

Ret = Prc.Create("notepad.exe", Null, Null, PID)

MsgBox "メモ帳を起動しました。" + vbCrLf + _
"PIDは、" + CStr(PID) + "ですよ。"

Set Prc = Nothing
Set Service = Nothing
Set Locator = Nothing

End Sub

Comment

実行する条件としてここではリモート上のコンピュータ名は「LONDON」で、「administrator」アカウントのパスワードは「password」とします。今回ポイントになる部分は、

Set Service = Locator.ConnectServer("LONDON", , "administrator", "password")

です。
以前も説明しましたがConnectServerメソッドにはいくつかの引数があります。ConnectServerメソッドを使用する際に全ての項目を省略すれば自分自身に対してログオンしているアカウント情報を使用し自分自身に接続が行われます。今回のサンプルのように実行した場合は「LONDON」コンピュータに対して「administrator」アカウント「password」パスワードを使用して接続を行うということになります。
実行した結果「LONDON」コンピュータ上で起動したメモ帳のPIDが帰ってくるはずです。実際リモートコンピュータ上でタスクマネージャを起動して PIDを確認してみましょう。
この様にWMIを使えばリモートコンピュータ上の管理も色々出来るわけです。今回はメモ帳を実行したわけですが別に他のクラスを使用して値の取得をすることも出来ますし違うメソッドを実行することも可能です。

ちなみにリモートコンピュータへの接続はDCOMを使用して接続を行っているようです。よってRPCを使用していることになります。

(注意 2002/09/29)
Windows XP以降(.Net ServerやWindows 2000 SP2など)ではリモートでプロセスを作成しても実行画面は表示されない仕様に変わってしまったようです。プロセス自身は問題なく作成されるわけなのでデスクトップと対話的にやり取りが出来ない仕様になったようですね。


WMI を本で勉強したい方へ。 Windows PowerShellインアクション を読んでみては?
なかなか WMI のことが乗っている書籍は少ないですが…管理系業務に係る方には楽しめるかも?
パソコンで目が疲れたら、ブルーベリーアイ
『ブルーベリーアイ』1粒中ビルベリーエキス160mg【楽天シニア市場】
 ^ Copyright(C) 1997-2006 とお All rights reserved. <<