作成 2009.12.28
更新 2009.12.29
WshRemoteを使用可能にするには
目次
WSH 5.6以上
リモート操作の受け入れ
受け入れ準備のためにまとめて設定するスクリプト
WSH 5.6以上

Windows NT 4.0 SP3以降で、Internet Explorer 6以降がインストールされている環境で使用できます。

リモート操作の受け入れ

リモート操作を受け入れるように設定する必要があります。

  1. レジストリ変更
    レジストリを変更します。存在しない場合は新規に作成してください。なお、再起動は不要です。
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings
    Remote	REG_SZ	"1"
    
  2. Windows XP では以下のコマンドも実行
    XP にはバグがあるので以下のコマンドも実行します。Power Users権限以上が必要です。
    wscript -regserver
    
  3. ファイアウォールの許可
    DCOMで通信するので RPC接続を許可する必要があります。
  4. 同一ドメインで実行
    別ドメインでは実行できませんでした。だれかやる方法を知っている人は教えてください。
受け入れ準備のためにまとめて設定するスクリプト

レジストリ設定と、コマンド実行のところまでです。もう一度実行すると設定を解除します。

' リモートコントロールを受け入れるスクリプト
Option Explicit
Dim WshShell, regString, retString, setValue
Dim retButton
Set WshShell = WScript.CreateObject("WScript.Shell")
regString = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings\Remote"
setValue = "1"
On Error Resume Next
retString = WshShell.RegRead(regString)
If Err.Number = 0 Then
  If retString = setValue Then
    retButton = MsgBox("すでに設定済みのようです。設定を解除しますか?" & vbNewLine _
	& "OK を押すとリモート操作を受け付けなくなります。", vbOKCancel, "リモート操作設定")
    If retButton = vbCancel Then
      WScript.Quit
    Else
      setValue = "0"
    End If
  End If
End If
On Error Goto 0
On Error Resume Next
WshShell.RegWrite regString, setValue, "REG_SZ"
If Err.Number <> 0 Then
  WScript.Echo "変更する権限が無いようです。"
  WScript.Quit
End If
On Error Goto 0
If setValue = "1" Then
  WshShell.Run "wscript -regserver", 0, True
  WScript.Echo "リモート操作の設定が完了しました。"
Else
  WScript.Echo "リモート操作の設定を解除しました。"
End If

参考
WshRemoteオブジェクト

タグ: WSH VBScript

©2004-2017 UPKEN IPv4