FC2ブログ
IISのプロセス起動に使用するアカウントの変更とか
IISをインストールすると次のユーザーがローカルアカウントとして作られる

・IUSR_[ComputerName]
・IWAM_[ComputerName]

IUSR_[ComputerName]は、匿名クライアントからのHTTPリクエストで、ファイルへのアクセスを行う際に使用するアカウント。このユーザー特権でファイル操作や、SqlServerへのアクセス(Windows認証を使った場合)が行われる。

IWAM_[ComputerName]は、HTTPリクエストを処理する本体のプログラムを実行する際のアカウント。IISを外部プロセスで動作させる時に使われる。必ずIIS_WPGグループに所属する必要がある。IISのWEBサーバーは、既定の動作でCOM+のアウトプロセスとして実行されるので、その際に使用される。

IIS6.0の場合、AppPoolを使って動作させることになることが殆どだけど、IIS5.0の互換モードで動かすこともある。その際に、既定のIWAM_[ComputerName]のアカウントでは困る場合がある。
例えば、BASP21を使って外部プログラムを起動させると、IWAM_[ComputerName]で動作することになる。外部プログラムが共有フォルダにアクセスする際には、IWAM_[ComputerName]で行うことになるで、リモート側のPCにIWAM_[ComputerName]のユーザーを作る必要がある(リモートPCでGuestが有効になってれば関係ないが)。
BASP21を使わないで独自に実装すればいいじゃないというのは無しで('A`)

そこで次のコマンドを使えばIWAM_[ComputerName]を変更できるようになる。

**********************************************************************************

# ここで指定するアカウントは必ず IIS_WPG グループに所属させること!
# でなければ、起動に失敗する

# メタ情報を変更する
cscript c:\inetpub\adminscripts\adsutil.vbs SET W3SVC/WAMUserName "account_name"
cscript c:\inetpub\adminscripts\adsutil.vbs SET W3SVC/WAMUserPass "account_pass"

# 変更されたアカウント情報をCOM+情報へコピーする
cscript c:\inetpub\adminscripts\synciwam.vbs -v

# COM+の登録情報を見たい場合は、管理ツール->コンポーネントサービスで
# マイコンピュータ->COM+アプリケーション->IIS Out-Of-Process のプロパティを開く

# IISの再起動
iisreset

**********************************************************************************

で、ASPを使った処理をするページにアクセスすると、dllhost が指定したアカウントで実行されるようになる。デフォルトではここが、IWAM_[ComputerName]な訳だ。
※静的ページへのアクセスでは、dllhost.exeは起動されない。既定のプロセスが処理してくれるため

起動アカウントをドメインユーザーにしたい場合は、
cscript c:\inetpub\adminscripts\adsutil.vbs SET W3SVC/WAMUserName "domain_name\account_name"
で、OK

スポンサーサイト
TOP
プロフィール

hssamurai

Author:hssamurai
FC2ブログへようこそ!

最新記事
最新コメント

最新トラックバック

月別アーカイブ
カテゴリ