在找不到C#error cmdlet中运行基本PowerShell命令

时间:2016-08-24 15:03:15

标签: c# powershell

我有一个C#控制台程序,我想运行PowerShell命令NOT SCRIPTS,但无论我尝试在PowerShell运行空间中运行什么命令,都会收到错误,指出找不到cmdlet。它可以简单如下:

static void Main(string[] args)
{
    try
    {
        using (Runspace runspace = RunspaceFactory.CreateRunspace())
        {
            runspace.Open();
            PowerShell ps = PowerShell.Create();
            ps.Runspace = runspace;
            ps.AddCommand("(Get-Date).AddDays(1)");
            var result = ps.Invoke();

            Console.WriteLine(result);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error: " + ex.ToString());
    }
}

我可以在PowerShell命令行输入此命令,它运行得非常好。我没有添加任何模块来运行它。我错过了什么?

1 个答案:

答案 0 :(得分:4)

命令仅为Get-Date。当您使用AddCommand时,它是预期的。例如,

ps.AddCommand("Get-Date").AddParameter("Format", "u").Invoke();

请参阅 AddCommand(String)

你有一个脚本,它不容易适合AddCommand(因为它不是一个)。改为使用Tty AddScript:

ps.AddScript("(Get-Date).AddDays(1)").Invoke();