- PR -

ASP.NETから起動したアプリの強制終了

1
投稿者投稿内容
elmo
常連さん
会議室デビュー日: 2002/08/09
投稿数: 47
投稿日時: 2002-11-20 14:06
お疲れさまです。elmoです。

ASP.NET(VB)でShell()関数を使用してWebサーバ上に別アプリを起動したのですが、起動されたアプリを強制終了する方法が分かりません。
アプリの起動をテストしたのはメモ帳(notepad)で、これを永久ループに陥ったアプリと見立てています。
そして、Webサーバ上のAdministratorユーザでタスクマネージャから強制終了を試みたのですが、
「操作を完了できませんでした アクセスが拒否されました」
とエラーが出てしまい終了させることができませんでした。
ASP.NET上から起動したプロセスは何ユーザで動いていて、強制終了の仕方はどうするのかご存知の方がおられましたら教えて頂けないでしょうか?

ちなみにWebサーバのOSはWindows200 Serverです。
NothingButXMLInfoSet
大ベテラン
会議室デビュー日: 2002/07/16
投稿数: 116
投稿日時: 2002-11-23 10:02
> ASP.NET上から起動したプロセスは何ユーザで動いていて、

デフォルトでは、そのマシン上のASPNETというユーザーで動作しています。この構成は、machine.configのProcessModel要素で変更できます(IIS 5.xの場合)。

> 強制終了の仕方はどうするのかご存知の方がおられましたら教えて頂けないでしょうか?

2つ考えられます。1つは、ASP.NET(aspnet_wp.exe)の実行ユーザー(デフォルトでASPNET)としてタスクマネージャを起動する方法です。runasコマンドを使えば実現できますが、普通私たちはASPNETユーザーのパスワードを知りません。

もう1つの方法は、「プログラムのデバッグ」ユーザー特権を持つユーザーがタスクマネージャを起動してプロセスの終了を選択する方法です。こちらは非常手段ですので、デフォルトではAdministratorsにしか与えられていない特権です。
elmo
常連さん
会議室デビュー日: 2002/08/09
投稿数: 47
投稿日時: 2002-12-04 14:48
NothingBut.NETFX様、レス有難うございました。
返答が遅くなり大変申し訳ありません。

ご教授頂いた方法を試してみたのですが、プロセスを強制終了することができませんでした。
それぞれの方法で発生したメッセージは以下の通りです。

1.ASP.NETの実行ユーザーとしてタスクマネージャを起動する

AdministratorでASPNETのパスワードを設定し、コマンドプロンプトから
runas /user:aspnet taskmgr.exe
と入力し、タスクマネージャを実行しようとしたのですが、
「ログオン失敗:要求された種類のログオンは、このコンピュータではユーザに許可されていません。」
のエラーが発生してしまいました。
ログオンできるユーザと、できないユーザの違いとは何かあるのでしょうか。
Microsoftのサポートページをいろいろ探してみたのですが説明を見つけることができませんでした。
ユーザをログオンできるようにする設定方法をご存知でしたら教えていただけないでしょうか。

2.「プログラムのデバッグ」ユーザー特権を持つユーザーでタスクマネージャを起動

Administratorにデバッグ権限(Debugger Users)が付いた状態で試してみたのですが、操作が拒否されてしまいました。

ほとんどWindowsに関する質問になってしまって申し訳ございませんが、上記の現象を回避しプロセスを終了させるにはどのようにすればよろしいでしょうか?
DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2002-12-04 15:17
引用:

elmoさんの書き込み (2002-12-04 14:48) より:

1.ASP.NETの実行ユーザーとしてタスクマネージャを起動する

AdministratorでASPNETのパスワードを設定し、コマンドプロンプトから
runas /user:aspnet taskmgr.exe
と入力し、タスクマネージャを実行しようとしたのですが、
「ログオン失敗:要求された種類のログオンは、このコンピュータではユーザに許可されていません。」
のエラーが発生してしまいました。



ASPNETユーザのグループをAdministratorsにしてみたらどうでしょうか。
#危険かも…



[ メッセージ編集済み 編集者: DaikiRyuto 編集日時 2002-12-04 15:19 ]
NothingButXMLInfoSet
大ベテラン
会議室デビュー日: 2002/07/16
投稿数: 116
投稿日時: 2002-12-05 09:01
引用:

elmoさんの書き込み (2002-12-04 14:48) より:
「ログオン失敗:要求された種類のログオンは、このコンピュータではユーザに許可されていません。」


「ローカルログオンを許可する」ユーザー権利を与えます。

引用:

Administratorにデバッグ権限(Debugger Users)が付いた状態で試してみたのですが、操作が拒否されてしまいました。


「プログラムのデバッグ」ユーザー権利を与えます。

たぶんelmoさんはユーザー[特権|権利]というものをご存じなかったのだと思いますが、これはNTFSアクセス権のようなものではありません。Windows2000以上でしたら、管理ツールのローカルセキュリティポリシーを起動して、ローカルポリシー\ユーザー権利の割り当てでこれらの特権をユーザーやグループに与える必要があります。

これらの権限はいずれもかなり強力ですので、使い終わったら元に戻すことをお勧めします。通常、このような作業はシステム管理者の専権事項です。
elmo
常連さん
会議室デビュー日: 2002/08/09
投稿数: 47
投稿日時: 2002-12-05 16:25
DaikiRyutoさん、NothingBut.NETFXさんご回答有難うございます。

ユーザー[特権|権利]の存在について全く知りませんでした。
ローカルセキュリティ設定のユーザ権利の「ローカルでログオンを拒否する」にASPNETが割り当てられていた為、runas及びWindowsログイン画面でASPNETのログインができなかったようです。
「ローカルでログオンを拒否する」のASPNETのチェックを外すことでログインが可能になりました。
更にASPNETで起動したタスクマネージャからメモ帳を強制終了することもできました。
runasを使用した起動に関してはASPNETをAdministratorsグループに属させないとタスクマネージャを起動できなかったので、属したままにしてあります。

ご教授頂き、有難うございました。

1

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