平々毎々(アーカイブ)

はてなダイアリーのアーカイブです。

IISメタベース操作

下書き。清書したらブログへ。

  • WMIとADSIの両方が使える
  • WMIはSystem.ManagementServices.ManagementObject
    • 名前空間(スコープ)はroot/MicrosoftIISv2
    • パスはw3svc/1/ROOT/***
    • WMI Code Creatorやwbemtest.exe(Windows付属)が便利
      • 列挙はManagementObjectSearcherを使って検索するか、あるいはManagementObjectClass.GetInstancesを使って全部取得する
      • プロパティ変更はManagementObject.Properties を変更してManagemnetObject.Put
      • メソッド呼び出しはManagementObject.InvokeMethod
    • .NET Framework SDK の MgmtClassGen.exe ユーティリティを使うと、型指定されたラッパークラスを作成できる
  • ADSIはSystem.DirectoryServices.DirectoryEntry
    • パスはIIS://localhost/w3svc/1/ROOT/***
    • パスに応じたオブジェクトが取れる
    • オブジェクトの実体はWMIのオブジェクトと同じなので、プロパティやメソッドを知るにはWMI Code Creatorやwbemtest.exeが便利
      • DirectorySearcherは使えないようだ
      • 子オブジェクトはDirectoryEntry.Children
      • 子オブジェクトの検索はDirectoryEntry.Children.Find(名前, "")
      • 子オブジェクトの追加はDirectoryEntry.Children.Add
      • プロパティ変更はDirectoryEntry.Properties を変更して DirectoryEntry.CommitChanges
      • メソッド呼び出しはDirectoryEntry.Invoke