2

早些时候我使用如下代码来获取 COM+ 应用程序并验证我的应用程序是否正在运行

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

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

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

4

1 回答 1

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();

}

更多细节:

于 2016-06-30T21:33:14.207 回答