- PR -

[ASP.NET] System.Diagnosticsを使用して起動したプロセスについて

1
投稿者投稿内容
KIMERA
大ベテラン
会議室デビュー日: 2003/02/28
投稿数: 112
お住まい・勤務地: 兵庫県・大阪府
投稿日時: 2004-10-28 19:23
お世話になっています。
WinXP pro IIS6.0
VB.NETを使用してASP.NETのアプリケーション開発をしています。

タイトルの通り、System.Diagnosticsを使用してサーバーのプロセスを起動するようなものを作ったのですが、納得のいかない部分があります。

起動するプロセスはCACLS.EXEであり、フォルダやファイルに対してのセキュリティ権限を設定するものです。
WINOWSコマンドより実行した結果とASP.NETから実行した結果が違ってしまっているのですが、原因がうまくつかめません。

実行した処理としてはあるフォルダに対して新しいセキュリティ権限を追加する。というものなのですが、WINDOWSコマンドから実行すると「既存のセキュリティ権限を破棄して新しい権限を付与する。」といった動きになるのですが、ASP.NETから実行すると「既存のセキュリティ権限に対して、新しい権限を付与する。」という動きになってしまいます。

個人的に思うことは、コマンドを直で叩く場合の実行ユーザーとIISを介して実行される場合のユーザーとが違うからなのかな。と思いますが、IISの実行ユーザーがどのユーザーであるのかがはっきりしません。

これらを解消するのに何か有用な情報をお持ちでしたら、ご教授いただければと思います。
KIMERA
大ベテラン
会議室デビュー日: 2003/02/28
投稿数: 112
お住まい・勤務地: 兵庫県・大阪府
投稿日時: 2004-10-29 10:47
お世話になります。

解決まではいたりませんでしたが、実行時の違いというのがわかりました。

簡単なことだったのですが、コマンドで実行すると「よろしいですか?(Y/N)」という確認メッセージが出力されてしまいます。
手入力であれば、そのまま続けて処理を実行できるのですが
アプリからだとその部分で止まってしまっているようです。

一応、コマンドでは起動プロセスの前に「ECHO YES|」としてやることで、自動でYESを入力してくれるのですが、.NETのSystem.Diagnostics.Procesではその指定方法がわからない状態です。

コマンドとして出力されているのではなく、プロセスを起動するということなので、上記のようなコマンドベースでの処理は無理なんだとは思います。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-10-29 21:16
引用:

KIMERAさんの書き込み(2004-10-28 19:23)より:

WINOWSコマンドより実行した結果とASP.NETから実行した結果が違ってしまっているのですが、原因がうまくつかめません。
WINDOWSコマンドから実行すると「既存のセキュリティ権限を破棄して新しい権限を付与する。」といった動きになるのですが、ASP.NETから実行すると「既存のセキュリティ権限に対して、新しい権限を付与する。」という動きになってしまいます。


引用:

KIMERAさんの書き込み(2004-10-29 10:47)より:

簡単なことだったのですが、コマンドで実行すると「よろしいですか?(Y/N)」という確認メッセージが出力されてしまいます。
手入力であれば、そのまま続けて処理を実行できるのですがアプリからだとその部分で止まってしまっているようです。


 え〜っと、2つの書き込みで、意味があっていませんよね?先のは「結果が違う」で、後のは「動作が違う」。どっちが正しいのでしょう?


> WinXP pro IIS6.0
 うみ?Win.XPのIISは、5.1では?2003ServerのIISは、6.0ですけど。
 なお、IISの実行ユーザは、5.1と6.0で異なります。

 cacls.exeには、“/e”というオプションがありますが、これを指定しても、「差し替え」される?
 で、私の方では、cacls.exeを単独で起動させる分には、「よろしいですか?」は出ませんでした。対象となるファイルの持ち主や、ファイルなのかディレクトリなのか、実行しているユーザの権限、などによって異なるのかもしれません。


_________________
1

スキルアップ/キャリアアップ(JOB@IT)