2009-05-22 12 views
4

レガシーASPアプリケーションからコマンドライン操作を実行する必要があります。ここで WScript.ShellオブジェクトのASP権限の問題をデバッグする方法は?

は私のコードです:

<% 
    cmd = "%comspec% /c echo Hello"  

    set wsh = CreateObject("WScript.Shell") 
    ireturn = wsh.Run(cmd, 0, true) 
    set wsh = nothing 
%> 

そして、ここで私が受けていた結果である:

マイクロソフトのVBScript

許可が拒否されまし '800A0046' ランタイムエラー

/テスト.asp、行6

IIS6でこのコードを実行する方法はありますか?

注:もちろん、私はechoコマンドを実行する必要はありませんが、問題のその他の原因を除外したいと思います。

更新:ほとんどのものを試しましたが、tomalaksは何も助けてくれませんでした。たぶん私は少し質問を変更することができます。 この問題をどのようにデバッグできますか?

答えて

4

ASPは、通常、cmd.exeなどの潜在的に危険なものへのアクセスを拒否されます。 cmd.exeのファイルのアクセス許可を確認して、それがあなたに当てはまるかどうかを確認してください(私はそうだと思います)。

あなたが本当にページ処理の一部を行うには使用CMD.EXE、どちらか(インターネットに面したWebサーバにはお勧めできません)cmd.exeの上の変更ファイルのアクセス権、またはを確認する必要があります場合は、そのASPページそのファイルへのアクセスを拒否されていない資格情報を実行します。

これを実現するには、IIS管理コンソールを使用して、ASPページの「匿名アクセス」を削除し、可能であればWindows統合認証を使用するか、「匿名アクセス」を有効にして、デフォルトの "IUSR _..."の代わりに使用する必要があります。

また、cmd.exeを使用してSTDOUTに何かを出力するプログラムを起動するだけの場合は、プログラムをcmd.exe呼び出しでラップせずに直接起動できます。再度、ASPページが実行されるユーザーは、そのプログラムの実行可能ファイルにアクセスする必要があります。

関連する問題