- ベストアンサー
緊急です。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>
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
共有フォルダ \\サーバ名\aaa へのアクセス権と、IIS/ASP の asp ファイルを実行する時のアクセス権に関係すると思います。 ひとつの方法として、asp ファイルを明示的に \\サーバ名\aaa にアクセス権のあるユーザに指定してみてはいかがでしょうか。 具体的には、IIS の管理ツールにて asp ファイルへの匿名アクセス権のチェックをオフにし、認証を必要とさせます。 その後、asp にアクセスします。 なお、"\\サーバ名\aaa\test.exe" として、起動した場合、test.exe を実行するコンピュータは、IIS/ASP のあるコンピュータ上になります。 リモートコンピュータ上で test.exe を動かしたい場合には、また別の方法が必要になります。 たとえば、WSH 5.6 のリモートスクリプト実行機能があります。
その他の回答 (1)
- selenity
- ベストアンサー率41% (324/772)
UNCパス名を使ってもだめです。 IISはIUSR_XXXXというアカウントで\\サーバ名へアクセスしますので当然接続先の\\サーバ名にはIUSR_XXXXというアカウントはありません。 もし、あったとしても、パスワードが違っていて接続できないかのどちらかでしょう。 または、IISで「\\サーバ名\aaa\」に対するのエイリアスを作成しておき、更に、test.exeの中でユーザ名とパスワードを指定して「\\サーバ名\bbb\」に接続するようにすれば可能でしょう。 すなおに、\\サーバ名へEXEを置くことをお薦めします。
お礼
回答ありがとうございます。まずEXEが起動できなかったのは、WSHがIISサーバにインストールされていませんでした。WSHをインストールし、EXEをIISサーバ上に移動させることによってEXEは起動できるようになりました。しかしEXEからテキストを作成して、それをPDF化させるところで赤バッテンマークがでます。内容は英語なのですが、どうもPDFWriterに出力する時点でおきているみたいです。これもアクセス権の問題とかでしょうか?いろいろadministrator権限とかあたえてみたのですができませんでした。
お礼
アドバイスありがとうございます。EXEをIISサーバ上に置くことによって起動はできました。しかし、EXEからテキストファイルを作成してそれをPDFWriterへ出力するときにエラーがでてとまってしまいます。いろいろアクセス権を変えてやってみたのですがどうも上手くいきません。他に考えられる問題とかわかりましたら、またアドバイスください。