powershell-Skript ausführen mit C# - System.Diagnostik.Prozess -, powershell-Skript sieht keine Argumente

Entschied ich mich für die Verwendung von System.Diagnostik.Verfahren zum ausführen eines powershell-script, nur weil es schien einfach,ich habe keine sorgen über den Ausgang Ergebnis, und ich wollte, dass die Benutzer in der Lage sein zu sehen, was läuft

Process process = new Process();

Process.StartInfo.FileName = "powershell.exe"
Process.StartInfo.Arguments = String.Format("-executionpolicy unrestricted -noexit \"{0}\" -XmlConfigFile {1}",scriptname, configFile);
process.Start();

Wenn ich diesen starte, das script sieht keine Argumente. Aufgrund der noexit kann ich testen $args und $MyInvocation am Ende. Keine Argumente. Wenn ich es in cmd.exe es funktioniert, Wenn ich Sie aus der {1} beschwert es sich über -XmlConfigFile fehlt ein argument.

edit: stellt sich heraus, Es war meine Schuld, ich war verschachtelte powershell-Sitzungen befassen sich mit zwingen powershell 4.0 verwenden und nur vorbei entlang der Argumente, die nicht zählen Argumente in $psboundparameters.

  • Haben Sie überprüft, dass das Ergebnis der String.Format ist, was Sie erwarten, es zu sein?
  • Haben Sie so etwas wie Process Explorer schauen Sie auf der Befehl-Linie, wie durch den zugrunde liegenden Prozess zu starten?
  • Ich habe doppelt überprüft die Argumente mit einer MessageBox, und dann wird es eingefügt cmd.exe nach einer "powershell.exe" und es sah das argument.
Schreibe einen Kommentar