ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
1142
1142
EMPFEHLEN
-
Hi community,
ich hoffe ich habe das richtige Unterforum erwischt...
Wie der Titel schon sagt versuche ich ein Powershell Skript aus C# aufzurufen, ohne Übergabeparameter funktioniert das auch gut, sobald aber welche dazukommen bekomme ich eine Exception (bei Zeile 20 im C# code), mit der ich leider nichts anfangen kann:
Ergänzung: Ich benutze MS Visual Studio 2008, .Net FW 3.5Ausnahme beim Festlegen von "WindowTitle": "Diese Funktion kann nicht aufgerufen werden, da sie vom aktuellen Host nicht implementiert wird."
C# Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
static void Main(string[] args) { Runspace runspace = RunspaceFactory.CreateRunspace(); runspace.Open(); Command myCommand = new Command("E:\\path\\test.ps1"); CommandParameter param1 = new CommandParameter("vmname", "..."); myCommand.Parameters.Add(param1); CommandParameter param2 = new CommandParameter("esxhost", "..."); myCommand.Parameters.Add(param2); CommandParameter param3 = new CommandParameter("user", "..."); myCommand.Parameters.Add(param3); CommandParameter param4 = new CommandParameter("pw", "..."); myCommand.Parameters.Add(param4); Pipeline pipeline = runspace.CreatePipeline(); pipeline.Commands.Add(myCommand); // Execute PowerShell script Collection<PSObject> result = pipeline.Invoke(); runspace.Close(); }
Powershell Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
param($vmname,$esxhost,$user,$pw) $err = 0 if($err -eq 0) { # VM-copy preparation Add-PSSnapin VMware.VimAutomation.Core cd "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts" .\\Initialize-PowerCLIEnvironment.ps1 Connect-VIServer -server $esxhost -User $user -Password $pw # Create new VM New-VM -name $vmname -vmhost $esxhost -memorymb 2048 #-diskmb 4000 }
Falls ihr evtl. eine Idee habt oder eine andere Lösung kennt die Parameter zu übergeben wäre ich sehr dankbar für jeglichen Input
Vielen Dank im Voraus
Gruß
MrCastle
-
Also, wie so oft: Stundenlang am suchen, im Forum fragen und danach direkt die Lösung finden...
Bei meinen weiteren Versuchen bin ich einen anderen Weg gegangen, indem ich nicht direkt das cmdlet aufgerufen habe, sondern eine extra powershell, bei der ich das Fenster einfach verstecke. Dachte mir nämlich schon, dass es irgendetwas mit der GUI zu tun hat.
Folgendes funktioniert:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
static void runScriptblock() { try { RunspaceInvoke ri = new RunspaceInvoke(); string script = "powershell.exe \"E:\\path\\test.ps1 -vmname name -esxhost host -user user -pw pw\" -Windowstyle hidden"; string scriptBlockResult = ri.Invoke(script)[0].ToString(); Console.WriteLine(scriptBlockResult); } finally { Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } }
Trotzdem danke an alle, die sich daran versucht haben
Gruß
MrCastle
Ähnliche Themen
-
Skript per FTP ausführen
Von Raven280438 im Forum PHPAntworten: 1Letzter Beitrag: 10.06.08, 17:11 -
Skript ausführen
Von Ricooo im Forum C/C++Antworten: 2Letzter Beitrag: 04.01.08, 22:20 -
VB Skript um 24.00 Ausführen
Von kokowawa71 im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 28.11.06, 12:20 -
Skript ausführen
Von Bella_Isy im Forum .NET ArchivAntworten: 4Letzter Beitrag: 02.05.05, 15:39 -
PHP-Skript ausführen
Von ShooterMS im Forum PHPAntworten: 0Letzter Beitrag: 14.02.05, 17:46





Zitieren
Login





