Powershellコマンドを呼び出すWindows 10で動作するC#WPFアプリケーションがあります。通常、コードは正常に実行され、すべて正常ですが、今はありません。C#のPowershellコマンドは機能しません
Powershellコマンドはエラーなく実行されますが、何もしません。私はこれらのコマンドに関するコードを変更していません。
私が呼ぶ方法は以下の通りです:
using (var ps = PowerShell.Create()) //Mounts iso image
{
ps.AddScript("Mount-DiskImage");
ps.AddParameter("ImagePath", IMG);
string outp = "";
Collection<PSObject> PSOutput = ps.Invoke();
using (StringWriter sw = new StringWriter())
{
foreach (PSObject invoke in PSOutput)
sw.WriteLine(invoke.ToString());
outp = sw.ToString();
}
if (ps.Streams.Error.Count > 0)
{
outp += Environment.NewLine + string.Format("{0} errors: ", ps.Streams.Error.Count);
foreach (ErrorRecord err in ps.Streams.Error)
outp += Environment.NewLine + err.ToString();
MessageBox.Show(outp);
}
}
編集:1が発生した場合はエラーを返すように変更コード。テスト時にエラーは表示されませんでした。
編集2:エラーチェックを追加しました。これはエラーを返しますが、それが何であるかはわかりません。
編集3:エラー出力を表示するようにコードを変更しましたが、ImagePath
パラメータを提供できませんでした(私はそうしませんでした)。私はメソッドに渡す前にIMG
パラメータをチェックしました。実際にはフルパスです。ここで何が間違っていますか?
コードが正しいように見えます。 'IMG'パラメータが有効であることを確認してください。 – Icemanind
@Icemanidパラメータも変更されていないことを確かめてください。イメージへの有効なグローバルパスである必要があります。 –
https://blogs.msdn.microsoft.com/kebab/2014/04/28/executing-powershell-scripts-from-c/「同期実行」までスクロールします。エラー出力を取得する方法があります(存在する場合)。 – Fildor