- - PR -
ASPよりサーバEXE起動について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-01-18 18:47
こんにちは。
ASPよりサーバ上のEXEを起動しようとしても、起動しません。 『手法1』 Dim objWsShell Set objWsShell = Server.CreateObject("WScript.Shell") Call objWsShell.Run("d:\XXXXXX\YYYYY.exe", 2, blnSynchro) Set objWsShell = Nothing 『手法2』 Set bobj = Server.CreateObject("basp21") rc = bobj.Execute("cmd.exe /c d:\XXXXXX\YYYYY.exe", 1,stdout) 2種類の手法でどちらもIISの仮想ディレクトリ上にNOTEPAD.EXEをコピーして実行しております。仮想ディレクトリの実行アクセス権は「スクリプト及び実行可能ファイル」としております。 NOTEPADは起動せずに、タスクマネージャのプロセスではNOTEPADが起動している状況です。EXE起動の引数に「プログラムを起動して終了するまで待ちます。」にしておりますがASP側に制御が戻ってきません。 この状況の解決方法をご存知の方、どなたかいらっしゃいましたら ご教授の程宜しくお願い致します。 | ||||||||
|
投稿日時: 2008-01-19 20:01
IISの実行ユーザタスクとして実行されていれば、その挙動は正しいと思います。 画面を確認したいのであればIISを実行しているマシンにログインするアカウントとIISの実行アカウントを同じものにしてみてください。 | ||||||||
|
投稿日時: 2008-01-19 20:15
Administrators group の member でも無い限り、"cmd.exe" の ACL ではじかれます。 ただし、この制御はどちらかというと logon している account というよりも、どのような logon 方法で logon したか?という点で制御が分かれます。 基本認証を利用していない場合には、NETWORK logon として扱われるので、"cmd.exe" を扱うことはできません。基本認証の場合には、INTERACTIVE logon として扱われます。 "cmd.exe" の ACL を編集すれば呼び出せるようにすることは可能ですが、そんなことをやると、自ら OS command injection を進んで招くようなものなので、通常はそんな対応はしません。 "cmd.exe" なんて呼び出さなくても処理は可能なので、通常は "cmd.exe" を呼び出さないように application を修正します。 _________________ |
1