VBSからのサーバサイドのEXEの実行

このQ&Aのポイント
  • VBSからのサーバサイドのEXEファイルの実行方法について
  • WScript.Shellを使用してサーバにあるEXEファイルを起動できない問題
  • WScript.Shellを使用する際の設定方法について
回答を見る
  • ベストアンサー

VBSからのサーバサイドのEXEの実行

こんにちはSHIRAOといいます。 WScript.Shellを使用してサーバにあるEXEファイルを 起動しようと思っているのですがどうもうまくいきません。WScript.Shellを使用する時に何か設定しなければならないことがあるのでしょうか? <script language="vbscript"> Function Window_OnLoad : Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "C:\WINDOWS\system32\notepad.exe" : End Function </script>

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>Set objShell = WScript.CreateObject("WScript.Shell") 何か、エラーが出ていたかと思いますが……。 <script language="vbscript"> として、この領域は、Windowsと違うはずですから、直接、Wscriptのメソッド自体は、使えないはずです。 Set objShell = CreateObject("WScript.Shell") と、してみてください。 一応、Set objShell = Nothing は入れたほうがよいかもしれませんね。

SHIRAO
質問者

お礼

実際やりたかったことは、クライアントのVBSからサーバ内のEXEのコールでした。 window.open("XXX.EXE")でもキックできたのですが、OS?IEのバージョン?の違いのせいか、環境によってEXEを実行できたり出来なかったり・・・ 結局VBSから別の画面を開くようにして、 <a href="XXXX.EXE">という風にして解決しました。 色々試しましたがこれが一番安定してるかな? ありがとうございましたm(_ _)m

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

<script language="vbscript" runat="server"> とかすればいいかと思いますが、 window_OnLoadは、ブラウザ側(クライアント)での動作だと思います。 サーバーでスクリプトを動作させるためには、 IISでASPで動かすようにしないといけないと思います。 単にクライアントのPCでnotepadを起動するのだったら、大抵はパスが通っていますから単に "notepad.exe" と指定すればいいかと思います。 見当違いのコメントだったらすみません

SHIRAO
質問者

お礼

解答ありがとうございましたm(_ _)m 実際はnotepad.exeではなくサーバにある他のexeを動かしたかったのですが、 どうしてもクライアントのVBSから起動しなくてはならなくて・・・ こういう事を始めて一ヶ月の私にはチョット難しいですね(^^;)

関連するQ&A

  • vbsでアプリを自動終了する

    notepadを起動せさ、「Hello」とキーボードより入力させてから自動的に終了させるvbsで作成しましたが、キーボード入力させるところまで成功しましたが、notepadを自動的に終了させる部分が成功しておりません。(イメージはユーザは何もせずnotepadを保存せずに自動終了させます。)下記のとおり 途中なのですがアドバイスをお願い致します。 ----------------------------------------------------------- Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe" WScript.Sleep 1000 objShell.SendKeys "hello ,"

  • VBSでファイルの自動保存

    vbs初心者です。自分なりに調べたのですが、うまくいかず、アドバスを願い致します。目的は、ファイルを自動保存したいのです。 以下のように記載して、最後にカレントデレクトリイに「test.txt」と名前をつけて保存させたいのです。よろしくお願い致します。 Set objShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 objShell.Run "notepad.exe" objShell.SendKeys "hello "  objShell.SendKeys "%{F4}" objShell.SendKeys "%y"  

  • サーバーに保存されているVB6で作成したexeをWEBで実行したいので

    サーバーに保存されているVB6で作成したexeをWEBで実行したいのですが下記エラーがでてきます。 エラーActiveXコンポーネントはオブジェクトを作成できません"Wscript.Shell" "Wscript.Shell"に原因があるみたいなのですが、どのようにしたらいいでしょうか。 個別テスト ・サーバでProject1.exeをダブルクリックすると正常起動します。 ・クライアントPCでもProject1.exeダブルクリックすると正常起動します。 ・クライアントPCでIISを起動しWEBで下記ソースを実行すると正常起動します。 環境 サーバー Windows Server 2003 IIS クライアント Windows XP 【ソース】 <html> <head> <title>サンプル</title> <script language="VBScript"> Sub Sample4() Dim WshShell Set WshShell = CreateObject("Wscript.Shell") '実行 WshShell.Run "C:\Inetpub\wwwroot\test1\Project1.exe" , 1 , True End Sub </script> </head> <body> <form name="frm1"> <span id="txt1"></span> <br> <input type=button value="テスト" name="btn1" onclick="vbscript:Sample4()" /> </form> </body> </html>

  • WSH動作しない!!(WScript.SleepとSendKeys?)

    WSHが動作しなくて困っています。 動作するコードとしないコードは次のとおりです。 いずれも@ITに掲載されているサンプルコードをそのままです。 動作しないコードについても,notepadの起動まではできます。 どうやら,sleepとsendkeysが動いてくれないようです。 <正常に動作するコード> Set objShell = WScript.CreateObject("WScript.Shell") WScript.Echo "メモ帳を起動します。" objShell.Run "notepad.exe" http://www.atmarkit.co.jp/fwin2k/operation/wsh03/wsh03_02.html <動作しないコード> Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe" WScript.Sleep 1000 objShell.SendKeys "hello" http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html ■動作環境 Win XP Pro IE 6.0 ちなみに,WSHファイルに対する実行権限はあります(フルコントロールです)。 以上なのですが,何か点検するべき事項などありましたらご教示ください。

  • 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

  • HTMLにWSHを組み込む

    HTMLにWSHのコードを書く事は可能ですか? たとえば、ページ開くとNotePad.EXEが起動するようにしたいのですが 以下のような書き方をすると WScriptが宣言されていません。 とエラーになります。 <HTML> <HEAD> <TITLE>起動のテスト</TITLE> </HEAD> <meta http-equiv="Content-Script-Type" content="text/JavaScript"> <BODY> <SCRIPT LANGUAGE="JavaScript"> var title = "メモ帳"; var wsh = WScript.CreateObject("WScript.Shell"); wsh.Run( "NotePad.EXE" ); </SCRIPT> </BODY> </HTML> いい案がある方教えてください。

    • ベストアンサー
    • HTML
  • VBScript による疎通確認

    今、以下のVBScriptを使い2台のPCサーバへ成功の監査としてログイン・ログオフ記録をアプリケーションログに書き込んでいます。しかし、このVBScriptでは、2台のPCサーバの生死を判断することは出来ず、ダウンしているPCサーバだろうがアクセスします。そのため、ログイン・ログオフする度にエラーポップが出てしまいます。 そこで、このVBScriptに疎通確認し判断したのち、生きているPCサーバへのみアクセスするようにしたいのですがどのようにコードを組めば良いのか解りません。ご教授お願いします。 ログインスクリプト Const AUDIT_SUCCESS = 8 Set objShell = WScript.CreateObject("WScript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") strMsg = objNetwork.UserName + " logon " objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名1" objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名2" ログオフスクリプト Const AUDIT_SUCCESS = 8 Set objShell = WScript.CreateObject("WScript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") strMsg = objNetwork.UserName + " logoff " objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名1" objShell.LogEvent AUDIT_SUCCESS, strMsg, "\\マシン名2"

  • display.vbsというファイルがstartupフォルダにあるので

    display.vbsというファイルがstartupフォルダにあるのですが? display.vbsというファイルがすべてのプログラムのstartupフォルダにあるのですが、これは何でしょうか?名前からして気持ち悪いので正体を知っている人がいたら教えて欲しいです。 メモ帳で開いたら下記のようなソースになっていました。 よろしくお願いします。 -------------------------------------------- ' Self destructive VBScript for changing optimal resolution ' Set optimal resolution Set objShell = Wscript.CreateObject("Wscript.Shell") objShell.Run "c:\windows\options\cfgdisp.exe /optimum", 7, True ' Now destroy itself Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile("C:\Documents and Settings\All Users\Start Menu\Programs\Startup\display.vbs") --------------------------------------------

  • VBScriptでノートパッド起動

    HTMLのボタン押下イベントで、VBScriptの関数を呼んで その中でノートパッドを開いてます。 VBScriptの関数は、 <Script language = "VBScript"> Sub showReport(FILEPATH) Dim intRtn Dim objShell Set objShell = CreateObject("WScript.Shell") intRtn = objShell.Run("notepad " & FILEPATH, 1, True) Set objShell = Nothing EndSub </Script> です。 ファイルのフルパスを引数で渡して、ノートパッドから開いてます。 この処理を行うと、起動して最初の1回だけ 「このページのActiveXコントロールは、安全ではない可能性があり、ページのほかの部分に影響する可能性があります。ほかの部分に影響しても問題ありませんか?」 というダイアログが表示されてしまいます。 一度「はい」を選択すると、ウィンドウを閉じるまでは出なくなりますが、 また起動した場合はダイアログが表示されます。 このダイアログを表示しない方法を教えていただけますでしょうか? プログラムの記述が悪いのでしょうか? IE6のSP1です。 よろしくお願いします。

  • VBSファイルを定期的に自動実行する方法

    毎日同時刻に下記のVBSファイルを自動実行したいと思います。 タスクスケジューラで実行すると download.exe は起動しますが 表示されたダイアログがアクティブ状態にならないため (タイトルバーが灰色のまま、タスクバーのボタンが点滅)、 文字入力ができないまま、処理が終了してしまいます。 1.ダイアログをアクティブにし、正常に処理を実行させるには   どのように記述すれば良いですか? 2.このVBSファイルをユーザーがログオフされている状態で   実行することは可能ですか? 恐れ入りますが、ご存じの方がおられましたら、ご教示願います。 <環境> Windows 2008 Server R2 standard (64ビット) <D:\aaa.vbs> Set objShell = WScript.CreateObject("WScript.Shell") 'ダウンロードEXEを実行 Set objExec = objShell.Exec("D:\download.exe") WScript.Sleep 1000 objShell.AppActivate(objExec.ProcessID) 'ファイルのダウンロード先を指定し、実行(ENTER) WScript.Sleep 1000 objShell.SendKeys "D:\data.txt~"

専門家に質問してみよう