- - PR -
GetProcessesByNameの実行時の権限について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-03-26 11:54
IIS6の話であると思いますが、web.configでのユーザ偽装ですとアプリケーションプールの実行ユーザの権限をひきづって(?)しまうようです。
このため、NETWORK SERVICE では cmd.exeの実行権限がデフォルトでは無い(セキュリティの為ですね)のでバッチを実行できないのだと思います。 アプリケーションプールを作ったり分けたりして、実行ユーザも分けられるのであれば問題ないと思います。 | ||||||||
|
投稿日時: 2007-03-26 12:32
これは、Web.config で偽装する場合、文字通り偽装になるからです。 Process の primary token は NETWORK Service のままで、 Process の起動はその primary token を引き継ぐため仕様どおりの 動作だったかと。 別の資格情報を用いて process を起動するためには、 CreateProcessWithLogonW (.NET では Process class でできたかと) とかを使って明示的に指定してやる必要があるでしょう。
Windows Service にも ACL が存在します。 起動に関する制御を行っているものは、このうちの DACL と 呼ばれるものです。 SC.exe とかで調査してみてください。 _________________ | ||||||||
|
投稿日時: 2007-03-26 12:43
設定としてはprocessModelのuserNameの方でしょう。
でIIS6だとこれは無視されてアプリケーションプールの設定が使用されます。 まあ、そういうことです。 | ||||||||
|
投稿日時: 2007-03-28 10:24
みなさん、ありがとうございました。
とりあえずアプリケーションプールの設定で進めることにいたしました。 今後ともよろしくお願いします。 |