C#使用WMI从COMAdmin.COMAdminCatalog访问数据

时间:2014-05-02 15:40:41

标签: c# wmi com+ comadmin

之前我使用下面的代码来获取COM +应用程序并验证我的应用程序是否正在运行

COMAdmin.COMAdminCatalog catalog = new COMAdmin.COMAdminCatalogClass();
catalog.Connect(servername);
catalog.GetCollection("Applications")

现在我需要从其他域执行相同的操作。因此,当我尝试运行上面的代码时,我收到身份验证错误。 我试图通过WMI连接并从win32 wmi提供程序获取COM +应用程序列表,但似乎它不可能或我做错了。

如果有人可以帮我从COMAdminCatalog使用凭据获取应用程序列表,我会很高兴。

1 个答案:

答案 0 :(得分:0)

您必须在当前线程上模拟其他用户。

using (ImpersonatedUser user = new ImpersonatedUser("USER_NAME", "DOMAIN_NAME", "USER PASSWORD"))
{

    COMAdmin.COMAdminCatalog objCatalog = new COMAdmin.COMAdminCatalog();
    objCatalog.Connect("SERVER_NAME");

    COMAdmin.COMAdminCatalogCollection objAppCollection =
        (COMAdmin.COMAdminCatalogCollection) objCatalog.GetCollection("Applications");

    objAppCollection.Populate();

}

更多详情: