获取.NET CORE 2中的AdministratorsMembers SID

时间:2018-05-30 10:06:43

标签: c# com .net-core ienumerable sid

我写了这个函数来检索所有管理员成员SID:

private IList<byte[]> GetAdministratorsMembersSIDs()
{
    IList<byte[]> adminMembers = new List<byte[]>();

    SecurityIdentifier id = new SecurityIdentifier(administratorsSid);
    string name = id.Translate(typeof(NTAccount)).Value.Split('\\')[1];

    using (DirectoryEntry adminGroupEntry = new DirectoryEntry(string.Format("WinNT://./{0},group", name)))
    {                
        foreach (object member in (IEnumerable)adminGroupEntry.Invoke("Members"))
        {
            using (DirectoryEntry memberEntry = new DirectoryEntry(member))
            {
                adminMembers.Add((byte[])memberEntry.InvokeGet("objectSid"));
            }
        }
    }

    return adminMembers;
}

在.NET Core 2.1中adminGroupEntry.Invoke("Members")抛出 System.PlatformNotSupportedException:不支持IDispatch和IDispatchEx
任何人都知道在.NET Core 2.1中兼容的解决方法吗?

[编辑]
{Core} 3.0中修复了Issue

0 个答案:

没有答案