- ベストアンサー
vbsからbatを動かしたいです♪
vbsからbatを動かしたいです♪ リモートでマシンを動かしたいのですが・・・。 動きません!なぜでしょう? どなたか助けてください、お願いします。 =============== Set shell = CreateObject("Wscript.Shell") shell.Run "\\(マシン名)\C$test\test.bat" set shell = nothing =============
- みんなの回答 (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)
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 ---この上まで
- misa0223
- ベストアンサー率0% (0/1)
追加で質問!! リモート スクリプトを実行できるようにコンピュータを設定するには: MSDNのページに以下のようにあるのですが、Poledit.exe も windowsscript.adm 見つかりません。 どこかにあるのでしょうか? 「サーバー上で Poledit.exe を使用して、リモート WSH を有効にします。 メモ 管理者がリモート WSH を有効にするには、Windows 2000 リソース キットを入手するか、http://msdn.microsoft.com/scripting にアクセスして WSH の設定値が記述されている ファイルを入手する必要があります。windowsscript.adm ファイルは、適用されるグループのポリシーを設定するサーバーにコピーしなければなりません。」
- ittochan
- ベストアンサー率64% (2667/4137)
>もう一度教えて下さい、お願いします。 はい。(ToT)>゛
- masapp
- ベストアンサー率60% (3/5)
前回の回答の補足ですが、、、。 起動元と起動先のOSがWindowsNT4.0や2000であれば、 サービスパックのRSHやRCMD (両方ともたしかリソースキットに入っていたと思います) でリモート実行できると思いますが、、、。 両方ともたしかサポート対象外ですし、OSも限られるので 市販のソフトを探した方がよいかもしれません。
- ittochan
- ベストアンサー率64% (2667/4137)
>リモートでマシンを動かしたいのですが・・・。 リモートですよね? WSHControllerオブジェクトの活用と ↓の処置が必要かと``r(・_・;)
補足
参考URLありがうございます。 参考URLですが、リンクが切れているようですが・・・。 もう一度教えて下さい、お願いします。
- masapp
- ベストアンサー率60% (3/5)
その方法でVBSを実行したマシン上でBATは動作すると思いますが、、、 もしかして、リモートマシン上でBATを動かしたいのでしょうか? それならば他の方法を使う必要があると思いますが、、、
補足
モートマシン上でBATを動かしたいです。 他の方法を使う知りたいのですが・・・。 宜しくお願いします。
- okztosh
- ベストアンサー率33% (88/259)
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を実行しないとだめなような気がします。
お礼
素敵です!出来ました(~o~)/ また一つ教えてください。 Set objService = objConnection.Get("Win32_Process") Error = objService.Create( strBatch, , , intProcessID ) ここで Error に返ってくるものは、 objService.Createの結果ですよね? それとも、strBatchの実行結果が返ってきているのですか? なんとなく、strBatchの実行結果のような気がしてるんですが・・・。 確信が持てません。 教えていただけませんでしょうか、宜しくお願いします。 ちなみに、strBatchの実行結果だったらいい感じです♪