アプリケーションドメインの情報を表示する方法 (IIS WMI)

アプリケーションドメインの情報を取得しよう!

IIS のアプリケーションドメインの情報取得、といっても、何のことやら意味不明だ、と思われるかもしれませんが、 ここで「アプリケーションドメインの情報を取得する」 ことは、IIS の言葉で言えば 「実行中の Web Application の情報を取得する」 ということに等しいです。

WMI プロバイダで、AppDomain というキーワードが出てるので、それをそのまま使って書いてます。

さて、アプリケーションドメインの情報は、AppDomain オブジェクトから取得可能です。

Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")

Set oAppDomains = oWebAdmin.ExecQuery( "SELECT * FROM AppDomain" )

For Each oAppDomain In oAppDomains 

     WScript.Echo "Id              = " + oAppDomain.Id
     WScript.Echo "IsIdle          = " + CStr( oAppDomain.IsIdle )
     WScript.Echo "PhysicalPath    = " + oAppDomain.PhysicalPath
     WScript.Echo "ProcessId       = " + CStr( oAppDomain.ProcessId )
     WScript.Echo "SiteName        = " + oAppDomain.SiteName
     WScript.Echo "ApplicationPath = " + oAppDomain.ApplicationPath
      
Next 

これは VBScript のコードですので、enumappdom.vbs などの名前で保存してください。

VBScript のコードをコマンドプロンプトで実行する時は、cscript を使います。

実行結果のサンプルは次のようになります。

> cscript test.vbs
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.

Id              = /LM/W3SVC/1/ROOT
IsIdle          = False
PhysicalPath    = C:\wp\
ProcessId       = 5272
SiteName        = Default Web Site
ApplicationPath = /

>

ちなみに、これは現在ロードされているアプリケーションドメインの情報なので、 何も動いてない時は結果は何も表示されません。

だから、何も表示されなくても 「なんだこのコードは!」 って、怒らないでくださいね(笑)

適当に aspx を走らせてみてから、このプログラムを実行すれば何かしら情報が表示されると思います。

ちなみに、AppDomain でクエリをするのってちょっとピンとこなくないですか? この情報を取るなら、WebApplication などの名前の方がわかりやすい気がするのですが・・・。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説