C# не запускает скрипт PowerShell
Я хочу вызвать скрипт PowerShell из моего проекта на C#, но он не будет работать.
Когда я запускаю код, я не получаю никаких ошибок (или я не знаю, где их найти). Я также попытался запустить скрипт из cmd и скрипт работает нормально.
Моя политика выполнения не ограничена, так что это не проблема.
Я дважды проверил пути, так что это тоже не проблема.
Код C#:
string scriptPath = @"C:\Users\jmiha\Desktop\test.ps1";
var parameters = new List<String>();
parameters.Add("test");
PowerShell ps = PowerShell.Create();
ps.AddScript(scriptPath);
ps.AddParameters(parameters);
ps.Invoke();
Скрипт PowerShell:
param(
[Parameter(Mandatory = $true)]
[String]$param
)
Add-Content 'c:\users\jmiha\desktop\test.txt' $param
Когда я открываю test.txt, он пуст.
1 ответ
AddScript
предназначен для произвольного кода, а не синтаксиса команды / параметра. Вы могли бы использовать что-то вроде
ps.AddScript("Test-Path C:\temp").Invoke()
и это работает.
Если вы хотите связать параметры и тому подобное, вам нужно использовать AddCommand
который позволяет вам взаимодействовать с командами так, как будто они являются объектами, и привязывать ваш параметр:
using (PowerShell powershell = PowerShell.Create())
powershell
.AddCommand(@"C:\Temp\test.ps1")
.AddParameter("param", "TEST")
.Invoke()
PS документация System.Management.Automation.dll
это ужасно