Получить SID администраторов членов в .NET CORE 2 - PullRequest
0 голосов
/ 30 мая 2018

Я написал эту функцию для извлечения всех идентификаторов безопасности членов администраторов:

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?

[EDIT] Ошибка исправлена ​​в .NET Core 3.0

...