Есть ли способ получить информацию о запуске идентификатора приложения DCOM программно. Смотрите прикрепленную картинку, чтобы понять, что я имею в виду.
Я пытался использовать WMI
ManagementObjectSearcher s = new ManagementObjectSearcher(new ManagementScope(@"\\.\root\cimv2"), new ObjectQuery(
"select * from Win32_DCOMApplicationSetting where AppID='{048EB43E-2059-422F-95E0-557DA96038AF}'"))
ManagementObjectCollection dcomSett = s.Get();
var value = dcomSett.Cast<ManagementObject>().ToArray()
[0].Properties["RunAsUser"].Value;
но свойство «RunAsUser» было пустым. Также пробовал Interop.COMAdmin
COMAdmin.COMAdminCatalogClass catalog = (COMAdmin.COMAdminCatalogClass)new COMAdmin.COMAdminCatalog();
(COMAdmin.COMAdminCatalogCollection)catalog.GetCollection("Applications")
таким образом мне удалось получить приложения, которые перечислены в узле «Приложения COM+» в оснастке «Службы компонентов» MMC:
Я новичок в COM, DCOM, COM+ и уверен, что пропустил что-то важное.
Через некоторое время я понял, почему я использовал NULL в первом подходе (ManagementObject). Вы получите:
- NULL, если идентификатор в настоящее время установлен как Запускающий пользователь
- "Интерактивный пользователь" в случае "Интерактивный пользователь"
- некоторая строка с именем пользователя в случае третьего варианта (см. первое изображение)
Но все же мне нужен способ изменить удостоверение для таких элементов, как Microsoft PowerPoint Slide в узле DCOM Config в MMC.