• 締切済み

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

みんなの回答

noname#158371
noname#158371
回答No.1

動かそうとしているコードはサーバー側のコードとして動かそうとしてますね? まず問題点が2つあります。 まず1つ目は、 ×Set objWSHShell=WScript.CreateObject("WScript.Shell") ◎Set objWSHShell=Server.CreateObject("WScript.Shell") になります。 そして、2つ目は、 WScript.Shellは、IIS(Webサーバー)のセキュリティ制限で 恐らく動かないんじゃないかと。 もしどうしても、ASPからShell実行したいのであれば、BASP21を 導入してShell実行できるようコードを書き換えてください。 ■BASP21の入手先 http://www.hi-ho.ne.jp/babaq/basp21.html ■BASP21を使ってASPからtest.batを呼び出すVBScript Dim bobj Dim rc Dim stdout Set bobj = Server.CreateObject("basp21") rc = bobj.Execute("cmd.exe /c d:\test.bat", 1, stdout) Select Case rc  Case 0 : response.write("正常終了")  Case -1 : response.write("コマンドエラー")  Case -2 : response.write("タイムアウト") End Select Set bobj = Nothing 宜しくお願いします。

参考URL:
http://www.hi-ho.ne.jp/babaq/basp21.html
stockjp
質問者

お礼

ご回答ありがとうございます。 試してみます

関連するQ&A

  • 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

  • ダブルコーテーションで3度も囲ってるのですが

    vbsで電卓を起動する時 Set objWshShell = WScript.CreateObject("WScript.Shell") objWshShell.Run """CALC.EXE""" のように、CALC.EXEをダブルコーテーションで3度も囲ってるのですがなんででしょうか? VBAの場合は Sub test() Dim i As Long i = Shell("CALC.EXE") End Sub のように3重には囲わなくても起動します。

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

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

  • 緊急です。Wscriptで・・・

    IIS上にあるASPファイルからWscriptを呼び出して、VBで作成したEXEを実行させたいのですが、上手くいきません。コマンドプロンプトから実行させると上手くいくのですが、どうしてでしょうか?ASPはIIS上にあり、test.exeを実行すると別サーバにファイル(例 \\サーバ名\bbb\OK.txt)を作成するといったプログラムです。UNCパス指定だからでしょうか?よろしくお願いします。 ASPファイル内容--------- <%@ language="VBScript"%> <html> <body> テストASP <% Dim WshShell Set WshShell = Server.CreateObject("WScript.Shell") WshShell.Run "\\サーバ名\aaa\test.exe" , 0 , false Set WshShell = Nothing %> </body> </html>

  • コマンドプロンプトの出力をVBScript内の変数に代入する

    VBScriptからコマンドプロンプトのver | findstr 5.1を実行し、その出力結果をVBScript内の変数に代入したいのですが、どうすればいいでしょうか? Dim WShell Dim result Set WShell = WScript.CreateObject("WScript.Shell") WShell.Run "cmd /c (ver | findstr XP > " & result & ")" MsgBox result とやってもresultには何も入っていませんでした。

  • VB6のWScript.Shellについて

    VB6のWScript.Shellで、他のVB6プログラムを起動する時の戻り値について教えてください。 AというVBプログラムからBというVBプログラムを起動するシステムがあります。 Bというプログラムで取得した値をAに返す方法はありますでしょうか? Aのソースは以下の通りです。 --------------------------------------------- sub test() dim objWshShell set objWshShell = Wscript.CreateObject("WScript.Shell") objWshShell.Run "C:\B.exe" & " " & hikisu1 & " " & hikisu2 , 1, wait End Function ---------------------------------------------- objWshShell.Runの戻り値はtrueまたはfalseのみのようです。 B.exeからtrue、false以外の値を取得する方法はありますか? また、やり方はobjWshShell.Runでなくてもよいです。 よろしくお願いします。

  • 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でバッチを実行できません。

    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でからプログラムを、オプションを指定して起動したい。

    vbsから、プログラムを実行する歳に、オプションを指定する方法を教えてください。 Firefoxを起動する際に以下のオプションをつけて実行したいのですが 上手くいきません。 (1)-new-tabオプション (2)URL =================================== Option Explicit Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe""" Set objWshShell = Nothing Firefoxを起動するだけであれば上の記述でいけますが (1)と(2)は objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe""" の後ろにどのように記述すればいいのでしょうか。