• ベストアンサー

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

  • VBSでバッチを実行できません。

    C:\temp\test.batをVBSで実行しようとするのですが、 何度やっても実行されません。 想像ですが、c:\WINNT\System32\cmd.exeが動いている ようなのですが、肝心のC:\temp\test.batが動きません。 以下のように記述しました。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run ("cmd /c c:\temp\test,0,True") WIN2K、IE6.0の環境です。 どこか記述に誤りでもあるのでしょうか? どうぞよろしくお願いいたします。

  • VBSの処理について

    下のプログラムはどんな処理をしているのか教えていただけないでしょうか? 全プログラムではなく一部抜粋です。 特に(1)「""^\*\*\*\*\*$""」の部分と(2)「f1.WriteLine( "cscript //nologo test.vbs sab.txt")」、(3)「rsh.Run "cmd /c """ & pth& "batta.bat""",1,false」を知りたいです。 f1.WriteLine( "findstr /V ""^\*\*\*\*\*$"" sabun.txt | findstr ""^[0*]"" >> sab.txt") f1.WriteLine( "cscript //nologo test.vbs sab.txt") f1.close Set rsh = Wscript.CreateObject("Wscript.Shell") rsh.Run "cmd /c """ & pth & "batta.bat""",1,false

  • マシンの再起動とWindowsの再起動の違いは?

    マシンの再起動とWindowsの再起動では、どういう違いがあるんでしょうか? お願いします http://tclock2ch.hp.infoseek.co.jp/storeroom.htm マシンの再起動-Reboot.vbs Set WSHShell = CreateObject("WScript.Shell") WSHShell.Run "C:\WINDOWS\RUNDLL32.EXE Shell32.dll,SHExitWindowsEx 2" -------------------------------------------------------------------------------- Windowsの再起動-Restart.vbs Set WSHShell = CreateObject("WScript.Shell") WSHShell.Run "C:\WINDOWS\RUNDLL.EXE USER.EXE,ExitWindowsExec"

  • VBAでネットワーク上のバッチジョブを実行したい

    クライアントPCのVBAからサーバなどのネットワーク上のバッチジョブを実行するにはどのようにすればよいでしょうか?   Dim WshShell Set WshShell = CreateObject("WScript.Shell") WshShell.Run "\\サーバ名\AAAAA\BAT\TEST.bat", , True MsgBox "終了!" Set WshShell = Nothing 上記を参考にしたのですが、どうもうまくいかないのです。 何かが足りないのですか?

  • 何とかFireFox用のVBSを作ってみたのですが、

    何とかFireFox用のVBSを作ってみたのですが、 下のような記述ですとサイトの種類分ブラウザも 起動してきてしまいます。 タブで開きたいのですが、 どのように記述すればいいのでしょうか。 よろしくお願いいたします。 =================== Option Explicit Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.google.co.jp" objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.msn.co.jp" objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.yahoo.co.jp" Set objWshShell = Nothing

  • vbsからバッチファイル実行時の引数渡しについて

    vbsからバッチファイルを実行する時に、引数として変数を渡すことはできるでしょうか。バッチファイルは引数を受け取れる記述をしています。変数の値は常に変動します。 CreateObject("WScript.Shell").Run "C:\HULTOOL\test.bat",0 を使ってtest.batを実行しています。"C:\HULTOOL\test.bat aaa(aaa)は固定の数値ですという書き方で、バッチファイルがaaaを第一引数として受け取れることは試してできました。しかし、aaaを変数にすると成功しません。何かよい記述方法はあるのでしょうか。ご教授ください。

  • ASPからVBS実行時の権限

    ASPからWscript.Shellを使ってVBSを実行しているのですが、 ASP中のDBオープンには問題はないのですが、test.vbs中でオープンできません LOGファイルは"dbConnection-OK"までになっています。 権限の問題かどうかはわからないのですが、原因は何でしょうか? DBはODBC経由のSQLServerです。 ---------ASP-------------------------------------- <% Dim dbConnection Set dbConnection = CreateObject("ADODB.Connection") dbConnection.Open "testdb" dbConnection.Close Set dbConnection = Nothing '上記OPENに関して問題なし Dim WshShell Set WshShell = CreateObject("Wscript.Shell") WshShell.Run "cscript.exe e:\test.vbs 123", 0, True Set WshShell = Nothing %> <html> <head> <meta http-equiv="Cache-Control" content="no-cache" /> <title>Pipot.to</title> </head> <body> OK </body> </html> ---------test.vbs-------------------------------------- Dim ObjFSO Dim ObjTS Set ObjFSO = CreateObject("Scripting.FileSystemObject") Set ObjTS = ObjFSO.CreateTextFile("e:\log.txt") ObjTS.Write "LOG開始" Dim dbConnection Set dbConnection = CreateObject("ADODB.Connection") ObjTS.Write "dbConnection-OK" dbConnection.Open "testdb" ObjTS.Write "OPEN-OK" dbConnection.Close Set dbConnection = Nothing ObjTS.Close Set ObjTS = Nothing Set ObjFSO = Nothing

  • ASPからVBScriptの実行

    ASPから下のVBScriptを実行使用とすると "500"Internal Server Error が出力されて困ってます。 へるぷみー Dim objWSHShell Set objWSHShell=WScript.CreateObject("WScript.Shell") objWSHShell.Run "cscript.exe d:\test.bat" objWSHShell=Nothing

  • vbs で jar ファイルを起動させたいのにエラーがでる

    VBS で JAR を起動しようとするとエラーがでてしまって起動できなくて困っています。 ** test.vba ** Dim oShell Set oShell = WScript.CreateObject ("WSCript.shell") oShell.run "PLAY.jar",0 Set oShell = Nothing ************ と記述した test.vba をダブルクリックすると Windows Script Host が 「この操作に対して指定されたファイルには、アプリケーションが関連付けられていません。」 というエラーを出します。 2台のマシンで試してみましたがデスクトップはOKでもノートパソコンではNGでした。 そのマシンは WindowsXP Professional IE 6 ですが、2台ともその部分は同じです。 マイコンピュータからフォルダオプションを見たところ拡張子 VBS は ファイルの種類 VBScript Script File に関連付けられているようです。 コマンドラインから java -jar PLAY.jar と入力して実行すると起動できます。 なにが悪いのかさっぱりわかりません。 よろしくお願いします。

    • ベストアンサー
    • Java
  • VBSで自身の実行状態をチェックする方法

    お世話になります。 VBSについてご教授いただきた事がございます。 下記のような"URIAGE.bat"というバッチファイルを実行するTEST.VBSがあります。 当初はURIAGE.batというバッチファイルを直接クリックして動かしていましたがDOS画面を表示させたくないと思い、検索したところ下記のようにVBSに記述すれば非表示になる、とありましたので早速試してみました。 CreateObject("WScript.Shell").Run "C:\URIAGEDATA\system\URIAGE.bat",0 ここからが質問ですが、あるユーザーがこのVBSを動かした直後に、再度このVBSをクリックしてしまい、処理がエラーになってしまいました。 こういった場合にTEST.VBSが自分が"動作中"ということを認識して"動作中"というエラーメッセージを出してURIAGE.bat処理を回避させる方法はありますでしょうか? 環境:Windows XP SP SP3 どなたかご教授いただけますと幸いでございます。

専門家に質問してみよう