从C#在Powershell中运行RemoteDesktop Commandlet时出错

时间:2018-07-09 09:22:16

标签: c# powershell remote-desktop remoteapp

我尝试使用C#在powershell中执行RemoteDesktop命令集。

以下是我的程序:

static void Main(string[] args)
        {
            using (var powershell = PowerShell.Create())
            {
                powershell.Commands.AddCommand("Import-Module").AddArgument("remotedesktop");
                powershell.Invoke();
                powershell.Commands.Clear();
                powershell.AddCommand(@"Get-RDRemoteApp");
                powershell.AddCommand(@"out-string");
                foreach (var result in powershell.Invoke())
                {
                    Console.WriteLine(result);
                }
            }
        }

当我调用命令时,它给出错误System.Management.Automation.CommandNotFoundException: The term 'Get-RDRemoteApp' is not recognized as the name of a cmdlet, function, script file, or operable program.

如何实现调用RemoteDesktop命令集?

我解决了这个问题。我将运行模式从任何CPU更改为x64。

1 个答案:

答案 0 :(得分:1)

您需要为所有命令设置一个永久运行空间。现在的代码方式是,每个命令都在其自己的隔离运行空间中执行。添加以下代码:

var runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
powershell.Runspace = runspace;

using块的开头应该可以解决您的问题。