我想从我的C#应用程序中运行以下powershell命令:
Enter-PSSession –ComputerName fedsrv01.domain.local
Start-ADSyncSyncCycle -PolicyType增量
我发现了一些有关Powershell类的信息,但是由于缺乏经验,我难以实现自己想要的目标。
这是我到目前为止所拥有的:
我已经添加了程序集并引用了system.management.automation
使用(var powershell = PowerShell.Create()) {
//powershell.AddCommand("get-process");
powershell.AddCommand("Enter-PSSession -ComputerName fedsrv01.domain.local");
powershell.Invoke();
}
我收到一条错误消息:“术语'Enter-PSSession -ComputerName fedsrv01.domain.local'未识别为cmdlet,函数,脚本文件或可运行程序的名称。
如果我使用:powershell.AddCommand(“ get-process”),它将执行正常。
如果我在同一台PC上启动Powershell并输入Enter-PSSession -ComputerName fedsrv01.domain.local,则运行正常。
任何帮助将不胜感激。
干杯
乔诺
答案 0 :(得分:2)
尝试将您的应用程序编译为x64。如果将其编译为x86平台,则它将使用虚拟化的System32目录,因此您所需的功能可能不存在。
Powershell commands from C# 'the term is not recognizes as cmdlet'
答案 1 :(得分:1)
好吧,在对PowerShell类进行了更多研究之后,我现在意识到您必须使用.addparameter方法分别添加参数。 .addcommand仅用于PowerShell命令。现在很有意义,为什么我收到错误消息,指出找不到命令。假设整个字符串是命令。 问题解决了!
乔诺