- - PR -
IIS6.0でのASP実行ユーザー
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-12-27 13:31
<システム構成>
OS:Windows2003 Server webサーバ:IIS6.0 開発言語:ASP <質問> ASPにてサイトを構築しています。 ASPにて生成した画面でボタンを押下すると、 特定のディレクトリにファイルを生成するように プログラムにしておりますが、該当ディレクトリに ファイルが生成できません。 (具体的には以下のようになります。 aspのソース中に、以下のコマンドを実行するようプログラムした。 echo 'test' > D:\TestSystem\TMP\test.txt 尚、上記コマンドは、aspからの実行で失敗するが、 コマンドプロンプトからだと正常に実行できる。) おそらく、ディレクトリへの権限付与の問題だと思い、 色々試しましたが、うまくいきません。 (具体的には以下のようになります。 D:\TestSystem\TMPに以下のユーザにて読取/書込権限を付与した。 ASP.NET LOCAL SERVICE NETWORK SERVICE) また、以下の環境だと正常に動作することが確認できています。 OS:Windows2003 Server webサーバ:IIS5.0 その他必要な情報等ございましたら、お申し付け下さい。 ご教授、宜しくお願いします。 | ||||
|
投稿日時: 2005-12-27 14:31
あれ? FileSystemObject で CreateTextFile じゃないんですか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-12-27 15:14
じゃんぬねっと様、
ご返信有難うございます。 ご指摘の通り、以下のプログラムだと該当ディレクトリに 正常にファイルが生成されます。 Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CreateTextFile "D:\TestSystem\TMP\test.txt" もともと、以下のようにプログラムしており、うまくいきません。 strCmd = "cmd /c echo 'test' > D:\TestSystem\TMP\test.txt" Set objShell = Server.CreateObject("WScript.Shell") iRet = objShell.Run(strCmd, 0, True) このプログラムで正常に動作できましたら、次に上記のstrCmdを zipコマンドを用いた圧縮ファイル生成のコマンドに変更したいと 考えております。つきまして、その手始めにobjShell.runで ファイルの生成を試みました。 ディレクトリへのアクセス権ではなくobjShell.Runでつまづいて しまっているのでしょうか?何か特別な設定が必要なのでしょうか? 何かお気付きの点がございましたら、ご教授下さい。 | ||||
|
投稿日時: 2005-12-27 16:56
戻り値である iRet にはエラーコードが含まれると思いますが、 その原因は、kido さんの考えているものと一致していますか? 何かがうまくいかない時の手がかりは、エラーの詳細です。 でないと想像になってしまいます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-12-27 21:54
じゃんぬねっと様、ご返信有難うございます。仰るとおりですね。
少しプログラムを変更した上で、エラーコードを調べようとしました。 (strCmdを変更しました。) strCmd = "c:\Windows\system32\ping.exe 127.0.0.1 > D:\TestSystem\TMP\test.txt" Set objShell = Server.CreateObject("WScript.Shell") iRet = objShell.Run(strCmd, 0, True) If iRet < 0 Or Err.Number <> 0 Then 'エラー内容をログへ出力 End If iRet及びErr.Numberを調べました。 iRet=0 Err.Number=70 ネットで色々探してみたのですが、Err.Number=70というのものが 何を意味しているのかがよく分かりませんでした。 調べる方法をご存知の方がいらっしゃいましたら、 ご教授下さい。 | ||||
|
投稿日時: 2005-12-27 22:14
Err.Descriptionでエラーの内容が取れると思いますよ。
#確か70番は"書込みできません"だったかな? #想定通りなんですかね。 | ||||
|
投稿日時: 2005-12-28 09:10
でっち6号様、ご返信有難うございます。
仰るとおりErr.Descriptionは「書き込みできません」です。 書き込み先のディレクトリには読取/書込権限を付与しており、 想定外です。 (具体的には以下のようになります。 D:\TestSystem\TMPに以下のユーザにて読取/書込権限を付与した。 ASP.NET LOCAL SERVICE NETWORK SERVICE) 何かお気付きの点がございましたら、ご教授下さい。 | ||||
|
投稿日時: 2007-12-08 17:14
かなり古い投稿ですが、自分も悩んだので投稿します。
cmd.exeに関連した処理実行の場合にIIS6経由の場合、 既定のACL上では禁止。(IUSR_xxxx)に権限なし。 2003+IIS6の環境で確認したところ、cmd.exeに対して IUSR_xxxxに実行権限を与えたところBATの起動はでき ました。 ただ、方法としてはあまりおすすめはできません・・・ |