• ベストアンサー

vbsからbatを動かしたいです♪

vbsからbatを動かしたいです♪ リモートでマシンを動かしたいのですが・・・。 動きません!なぜでしょう? どなたか助けてください、お願いします。 =============== Set shell = CreateObject("Wscript.Shell") shell.Run "\\(マシン名)\C$test\test.bat" set shell = nothing =============

質問者が選んだベストアンサー

  • ベストアンサー
  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.8

>素敵です!出来ました(~o~)/ (#´ο`#)いやん♪ >objService.Createの結果ですよね? そうみたいです。 >なんとなく、strBatchの実行結果のような気がしてるんですが・・・。 objService.Createの実行結果みたいです。 サーバー側のプロセスは .batに対応したcmd.exeを呼び出して実行しているので 0 なら cmd.exe /c c:\test.bat が起動できた 0以外なら cmd.exe がなんらなかの理由でc:\test.batを起動できなかった (cmd.exeが異常終了) それとも、cmd.exe自体が起動不可だったとか になります。 c:\test.batにバグがあっても (例えばcopy ではなく popy となって) Error は 0 です。 strBatchを cmd /c c:\test.bat にするとErrorの内容が違ってくるかもしれません。 さらばぁじゃ どろん!! |ω・) |・) |) ※パッ

その他の回答 (7)

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.7

windowsscript.adm が見つからないので WMIを使用し ↓こういうの作ってみました。(VBScript) Windows2000、WindowsXP Proで動きます (WindowsNTは持ってないので分かりません) ---この下から strBatch = "c:\test.bat" 'コンピュータ名 strComputer = "ittochan" strUserName = "administrator" strPassWord = "xxxxxxxxxxxxx" Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objConnection = objLocator.ConnectServer ( _ strComputer, _ "root\cimv2" , _ strUserName , _ strPassWord ) Set objService = objConnection.Get("Win32_Process") Error = objService.Create( strBatch, , , intProcessID ) If Error = 0 Then Wscript.Echo "(o゜▽゜)o 成功しました ProcessID " & intProcessID Else Wscript.Echo "(ノ_・、) 失敗しました Error " & Error & "." End If ---この上まで

maiko1226
質問者

お礼

素敵です!出来ました(~o~)/ また一つ教えてください。 Set objService = objConnection.Get("Win32_Process") Error = objService.Create( strBatch, , , intProcessID ) ここで Error に返ってくるものは、 objService.Createの結果ですよね? それとも、strBatchの実行結果が返ってきているのですか? なんとなく、strBatchの実行結果のような気がしてるんですが・・・。 確信が持てません。 教えていただけませんでしょうか、宜しくお願いします。 ちなみに、strBatchの実行結果だったらいい感じです♪

  • misa0223
  • ベストアンサー率0% (0/1)
回答No.6

追加で質問!! リモート スクリプトを実行できるようにコンピュータを設定するには: MSDNのページに以下のようにあるのですが、Poledit.exe も windowsscript.adm 見つかりません。 どこかにあるのでしょうか? 「サーバー上で Poledit.exe を使用して、リモート WSH を有効にします。 メモ 管理者がリモート WSH を有効にするには、Windows 2000 リソース キットを入手するか、http://msdn.microsoft.com/scripting にアクセスして WSH の設定値が記述されている ファイルを入手する必要があります。windowsscript.adm ファイルは、適用されるグループのポリシーを設定するサーバーにコピーしなければなりません。」

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.5

>もう一度教えて下さい、お願いします。 はい。(ToT)>゛

参考URL:
http://www.microsoft.com/japan/msdn/library/ja/script56/html/wstskSetupOfRemoteWSH.asp
  • masapp
  • ベストアンサー率60% (3/5)
回答No.4

前回の回答の補足ですが、、、。 起動元と起動先のOSがWindowsNT4.0や2000であれば、 サービスパックのRSHやRCMD (両方ともたしかリソースキットに入っていたと思います) でリモート実行できると思いますが、、、。 両方ともたしかサポート対象外ですし、OSも限られるので 市販のソフトを探した方がよいかもしれません。

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.3

>リモートでマシンを動かしたいのですが・・・。 リモートですよね? WSHControllerオブジェクトの活用と ↓の処置が必要かと``r(・_・;)

参考URL:
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wstsksetupofremotewsh.a
maiko1226
質問者

補足

参考URLありがうございます。 参考URLですが、リンクが切れているようですが・・・。 もう一度教えて下さい、お願いします。

  • masapp
  • ベストアンサー率60% (3/5)
回答No.2

その方法でVBSを実行したマシン上でBATは動作すると思いますが、、、 もしかして、リモートマシン上でBATを動かしたいのでしょうか? それならば他の方法を使う必要があると思いますが、、、

maiko1226
質問者

補足

モートマシン上でBATを動かしたいです。 他の方法を使う知りたいのですが・・・。 宜しくお願いします。

  • okztosh
  • ベストアンサー率33% (88/259)
回答No.1

 VBSを知りませんので、あくまで「たぶん」ということですが、 shell.Run "\\(マシン名)\C$test\test.bat"  というところを、 shell.Run "cmd /C \\(マシン名)\C$test\test.bat"  として試してみてはどうでしょう? バッチコマンドというのは、それ自体が実行プログラムではありません。バッチコマンドを実行するプログラムはcmd.exe(NT系Windowsの場合)やcommand.com(MS-DOS系Windowsの場合)です。ですから、cmd.exeを実行しないとだめなような気がします。

関連するQ&A