我是 PowerShell 新手,在 C# 中运行 PowerShell cmd-let。具体来说,我正在尝试使用 Citrix 的 XenDesktop SDK 编写一个 Web 应用程序来管理我们的 XenDesktop 环境。
作为一个快速测试,我参考了 Citrix BrokerSnapIn.dll,它看起来给了我很好的 C# 类。但是,当我点击 .Invoke 并显示以下错误消息时:“不能直接调用从 PSCmdlet 派生的 Cmdlet。”
我已经搜索并尝试了很多东西,但不知道如何调用 PSCmdlet。我有点想我必须使用字符串和运行空间/管道等来做到这一点。
感谢先进,NB
using System;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using Citrix.Broker.Admin.SDK;
namespace CitrixPowerShellSpike
{
class Program
{
static void Main(string[] args)
{
var c = new GetBrokerCatalogCommand {AdminAddress = "xendesktop.domain.com"};
var results = c.Invoke();
Console.WriteLine("all done");
Console.ReadLine();
}
}
}