2

自分のマシン(W2k3ドメインのVista)上のすべてのローカルグループを取得したい。

私が実行した場合:

using (DirectoryEntry de = new DirectoryEntry("WinNT://" + Environment.MachineName + ",group", null, null, AuthenticationTypes.Secure))
{

}

明らかに「無効なパス」を意味する「不明なエラー」0x80005000をスローします

ただし、コンピューターのクエリ(、groupを、computerに変更)ではエラーは発生しませんが、無視されているようです(すべてのオブジェクトが返されますか?結果を十分に調べていません)。、userもエラーを発生させます。

だから私の質問は、私は正しい道を進んでいるのかということです。すべてを取得しないようにフィルターを適用する方法はありますか?もしそうなら、どこで正しい構文を見つけることができますか?

4

1 に答える 1

3

私はあなたがマシンを手に入れる必要があると信じています-グループはその子です。

試す

DirectoryEntry machine = new DirectoryEntry("WinNT://" + Environment.MachineName + ",Computer");
foreach (DirectoryEntry child in machine.Children)
{
    if (child.SchemaClassName == "Group")
    {
        Debug.WriteLine(child.Name);
    }
}

LINQを使って自由にスパイスを加えてください。ただし、これで基本的なアイデアが得られるはずです。

于 2009-09-03T21:17:41.360 に答える