@fourpastmidnight の回答とこれらの記事object-group-attribute-grouptypeおよびmsdn Group-Type attributeを参照して、ステートメント
へのキャストuint
や解析を必要としないソリューションを見つけることができました。最初のリンクと -2147483646 の戻り値に関する @wodzu のコメントからの負の値を見て、SECURITY_ENALBED 値を -0x80000000 に反転してみました。if ... else if
[System.Flags]
public enum GroupType
{
BUILTIN_LOCAL_GROUP = 0x00000001,
ACCOUNT_GROUP = 0x00000002,
RESOURCE_GROUP = 0x00000004,
UNIVERSAL_GROUP = 0x00000008,
APP_BASIC_GROUP = 0x00000010,
APP_QUERY_GROUP = 0x00000020,
SECURITY_ENABLED = -0x80000000
}
値を取得して GroupType としてキャストする場合
var groupType = (GroupType)this.Entry.Properties["groupType"].Value
その後、各フラグのカンマ区切りの文字列を返す GroupType 値で .ToString() を使用できます。
または、.HasFlag メソッドを使用して、セキュリティ グループかどうかを確認できます。
bool IsSecurityGroup = groupType.HasFlag(GroupType.SECURITY_ENABLED);