C#内からPowerShellスクリプトを実行する必要があります。スクリプトにはコマンドライン引数が必要です。
これは私がこれまでに行ったことです:
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(scriptFile);
// Execute PowerShell script
results = pipeline.Invoke();
scriptFileには、「C:\ Program Files \ MyProgram \ Whatever.ps1」のようなものが含まれています。
スクリプトは「-key Value」などのコマンドライン引数を使用しますが、Valueはスペースも含むパスのようなものにすることができます。
これは機能しません。C#内からPowerShellスクリプトにコマンドライン引数を渡し、スペースに問題がないことを確認する方法を知っている人はいますか?
Command myCommand = new Command(scriptfile);
その後、pipeline.Commands.Add(myCommand);
エスケープの問題を解決します。