在c#中运行基本的PowerShell命令出错,没有找到cmdlet
本文关键字:出错 cmdlet 命令 PowerShell 运行 | 更新日期: 2023-09-27 18:03:51
我有一个c#控制台程序,我想运行PowerShell命令而不是脚本,但无论我尝试在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命令行输入这个命令,它运行得很好。我不需要添加任何模块来运行它。我错过了什么?
命令单独为Get-Date
。当你使用AddCommand时,这就是它所期望的。例如,
ps.AddCommand("Get-Date").AddParameter("Format", "u").Invoke();
<<p>看到em> AddCommand (String) 你有一个脚本,它不容易适应AddCommand(因为它不是一个)。Tty AddScript代替:
ps.AddScript("(Get-Date).AddDays(1)").Invoke();