tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
1142
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MrCastle MrCastle ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    32
    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:

    Ausnahme beim Festlegen von "WindowTitle": "Diese Funktion kann nicht aufgerufen werden, da sie vom aktuellen Host nicht implementiert wird."
    Ergänzung: Ich benutze MS Visual Studio 2008, .Net FW 3.5

    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
     

  2. #2
    MrCastle MrCastle ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    32
    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

  1. Skript per FTP ausführen
    Von Raven280438 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 10.06.08, 17:11
  2. Skript ausführen
    Von Ricooo im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 04.01.08, 22:20
  3. VB Skript um 24.00 Ausführen
    Von kokowawa71 im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 28.11.06, 12:20
  4. Skript ausführen
    Von Bella_Isy im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 02.05.05, 15:39
  5. PHP-Skript ausführen
    Von ShooterMS im Forum PHP
    Antworten: 0
    Letzter Beitrag: 14.02.05, 17:46

Stichworte