dotnetlogo2どうやら Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\MgmtclassGen.exe ってツールがあるらしい。
コイツを使うと WMI クラスを事前バインディングしたマネージ クラスを生成してくれるらしい。
普通は ManagementObjectSeacher の Query.QueryString に設定する文字列の中で WMI の中のクラスを指定するので、その後の結構取得で hoge("Name") とかやるわけだけど、共有フォルダ名を取り出すプロパティの名前が何なのか、その物理パスを取り出すプロパティの名前は何なのか、ヒントは何もない。まさに遅延バインディング。
MgmtclassGen は WMI のクラス名を指定して使う。他にホスト名、ユーザー名、パスワード、開発言語(いずれも省略可能)を指定して .NET 用のクラスを生成してくれるらしい。
WMI のクラスを指定してるので、そいつに特化した .NET クラスが作成される。
特化してるので hoge.Name とか hoge.Path とかで結果を簡単に取り出せる。いや、取り出せるらしいw
Dim s As New Root.CIMV2.Win32.Share
Dim c As Root.CIMV2.Win32.Share.ShareCollection
c = s.GetInstances
MessageBox.Show(c.Count.ToString())
結果の数字がこの PC の共有フォルダの数と一致してたけど、とりあえず実験はここまで。
なんのオプションも指定してないんで、はたしてこれで良いのかも不明。もちっと解析しなければ。
うちの DC が壊れてて、開発マシンのローカルにログオンして試してるんで、リモートのテストができない???