1

vbscript でネットワーク内の実行中のコンピューターにメッセージ ボックスを表示するにはどうすればよいですか? 私はどこでも検索しましたが、答えが得られません。

4

2 に答える 2

2

これはVBScriptにとっては少し高度な質問かもしれませんが、WSHではリモートスクリプトが許可されているため、WSHControllerにとっては可能なタスクです。もちろん、適切な構成が必要です。この記事では、このオブジェクトをセットアップするためのいくつかの手順を示しています。MicrosoftのWindowsScript5.6のドキュメントに詳細が記載されています。

リモートスクリプトでUIインタラクション(MsgBox、InputBoxなど)を許可しないいくつかの制限がありますが、これは、を使用して別のスクリプトを作成することでだまさFileSystemObjectれる可能性があります。

2つのスクリプトが必要です。1つはコントローラーマシンから実行し(名前はRemoteScript.vbs)、もう1つはターゲットマシンにコピーします(Messenger.wsf)。ここではコード全体を1つのブロックに投稿しますが、各部分を別々のファイルにコピーする必要があります。

REM ----------- RemoteScript.vbs code start here -------------

Const WshFinished = 2

Dim Controller, RemoteScript, RemoteServer
RemoteServer = "\\server_name"

Set Controller = WScript.CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("Messenger.wsf", RemoteServer)

WScript.ConnectObject RemoteScript, "WSH_"
RemoteScript.Execute

Do While RemoteScript.Status <> WshFinished 
    WScript.Sleep 200
Loop

WScript.DisconnectObject RemoteScript

Sub WSH_Error
    With RemoteScript.Error
        WScript.Echo "Error " & _
        CStr(Hex(.Number)) & " - Line: " & .Line & _
        ", Char: " & .Character & vbCrLf & _
        "Description: " & .Description
    End With
    WScript.Quit -1
End Sub

Function WSH_End()
    MsgBox "wshRemote End Event fired"
End Function

Function WSH_Start()
    MsgBox "wshRemote Start Event fired"
End Function

REM ----------- RemoteScript.vbs code end here ---------------

REM ----------- Messenger.wsf code start here ----------------

<package>
  <job>
    <script language="VBScript">
      tmpFile = "c:\_tmp711a.vbs"
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set fout = fso.CreateTextFile(tmpFile, true)
      fout.WriteLine "MsgBox ""Remote Hello"", 0, ""Example"" "
      fout.Close
      WScript.Sleep 100
      Set shell = CreateObject("WScript.Shell")
      shell.Run "wscript " & tmpFile, 1, True
      If fso.FileExists(tmpFile) Then fso.DeleteFile(tmpFile)
    </script>
  </job>
</package>

REM ----------- Messenger.wsf code end here ----------------
于 2013-01-30T21:29:04.463 に答える
0

次の Windows コマンドを使用できます。

  • net send(Windows Vista 以降ではサポートされていません。Messenger サービスが実行されている必要があります)
  • msg(ターミナル サーバー ユーザーのみ)

を使用して VBScript からこれらのコマンドを実行できますWshShell.Run。次に例を示します。

CreateObject("WScript.Shell").Run("net send computername Hello, world!")
于 2013-01-30T08:32:55.993 に答える