Citrix 7.6 代理 SDK C#/Powershell
Citrix 7.6 Broker SDK C#/Powershell
有人使用过 Citrix 7.6 BrokerSession SDK 吗?我不知道如何执行这样的命令,例如:
GetBrokerSessionCommand getCmd = new GetBrokerSessionCommand();
getCmd.AdminAddress = "citrixServer:80";
var result = getCmd.Invoke();
这给我一条错误消息:“无法直接调用从 PSCmdlet 派生的 Cmdlet。
在早期的 6.5 SDK 中我可以这样做:
string[] servers = new string[] { };
GetXAWorkerGroupByName workerGroup = new GetXAWorkerGroupByName();
workerGroup.WorkerGroupName = new string[] { workerGroupName };
workerGroup.ComputerName = XenAppController;
foreach (XAWorkerGroup _workerGroup in CitrixRunspaceFactory.DefaultRunspace.ExecuteCommand(workerGroup))
{
servers = _workerGroup.ServerNames;
}
return servers;
但是现在 CitrixRunspaceFactory 不存在了?
出于以更简单的方式处理异常的简单原因,我想避免使用 Powershell class 和 Powershell.Create() 执行命令。
Citrix 7.6 cmdlet 不是来自 Cmdlet class,而是来自 PSCmdlet。因此它们与 PowerShell 引擎绑定得更多,必须在其中调用:
Runspace runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
PSSnapInException psex;
runSpace.RunspaceConfiguration.AddPSSnapIn("Citrix.Broker.Admin.V2", out psex);
Pipeline pipeline = runSpace.CreatePipeline();
Command getSession = new Command("Get-BrokerSession");
getSession.Parameters.Add("AdminAddress", "SERVERNAME");
pipeline.Commands.Add(getSession);
Collection<PSObject> output = pipeline.Invoke();
据我所知,Citrix SDK 中强类型 classes 的美好时光已经一去不复返了。
有人使用过 Citrix 7.6 BrokerSession SDK 吗?我不知道如何执行这样的命令,例如:
GetBrokerSessionCommand getCmd = new GetBrokerSessionCommand();
getCmd.AdminAddress = "citrixServer:80";
var result = getCmd.Invoke();
这给我一条错误消息:“无法直接调用从 PSCmdlet 派生的 Cmdlet。
在早期的 6.5 SDK 中我可以这样做:
string[] servers = new string[] { };
GetXAWorkerGroupByName workerGroup = new GetXAWorkerGroupByName();
workerGroup.WorkerGroupName = new string[] { workerGroupName };
workerGroup.ComputerName = XenAppController;
foreach (XAWorkerGroup _workerGroup in CitrixRunspaceFactory.DefaultRunspace.ExecuteCommand(workerGroup))
{
servers = _workerGroup.ServerNames;
}
return servers;
但是现在 CitrixRunspaceFactory 不存在了? 出于以更简单的方式处理异常的简单原因,我想避免使用 Powershell class 和 Powershell.Create() 执行命令。
Citrix 7.6 cmdlet 不是来自 Cmdlet class,而是来自 PSCmdlet。因此它们与 PowerShell 引擎绑定得更多,必须在其中调用:
Runspace runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
PSSnapInException psex;
runSpace.RunspaceConfiguration.AddPSSnapIn("Citrix.Broker.Admin.V2", out psex);
Pipeline pipeline = runSpace.CreatePipeline();
Command getSession = new Command("Get-BrokerSession");
getSession.Parameters.Add("AdminAddress", "SERVERNAME");
pipeline.Commands.Add(getSession);
Collection<PSObject> output = pipeline.Invoke();
据我所知,Citrix SDK 中强类型 classes 的美好时光已经一去不复返了。