平々毎々(アーカイブ)

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

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

.NET Frameworkに用意されていない機能

ActiveX

  • 「署名の有/無」は、objectタグのcodebase属性でcabファイルを指定したときのインストールに影響する
  • 署名してなくても、ローカルでregsvr32.exeを叩けばインストールできる
  • インストールにはPower Users権限を要する
  • 「安全だとマークする/しない」は、ActiveXを起動するときの警告メッセージに影響する
  • 安全だとマークしてあれば、「署名の有/無」に関係なく、警告メッセージは出ない

「署名の有/無」と「安全だとマークする/しない」とは独立なのでひとつよろしく。