【发布时间】:2013-12-23 22:20:27
【问题描述】:
有没有办法以编程方式获取有关启动 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")
通过这种方式,我设法获得了在 MMC 的“组件服务”管理单元中的“COM+ 应用程序”节点下列出的应用程序:
我是 COM、DCOM、COM+ 方面的新手,我肯定错过了一些重要的东西。
过了一会儿,我发现了为什么我曾经在第一种方法(ManagementObject)中得到 NULL。 您将收到:
- 如果身份当前设置为启动用户,则为NULL
- “交互式用户”如果是“交互式用户”
- 在第三个选项的情况下带有用户名的一些字符串(见第一张图片)
但我仍然需要一种方法来更改 MMC 中 DCOM Config 节点下的 Microsoft PowerPoint Slide 等项目的标识。
【问题讨论】: