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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese, wie es für mich funktioniert:
Obwohl ich nicht weiß, was -XmlConfigFile tut. Wie es scheint kein gültiges argument:
http://technet.microsoft.com/en-us/library/hh847736.aspx
So können Sie es entfernen, für einen start.