none
Hyper-V Host per Power Shell finden RRS feed

  • Frage

  • Hallo Forum,

    System: Windows Server 2012 ich suche eine Möglichkeit, eine VM (egal auf welchem Host Sie sich befindet) zu starten.

    Momentan starte ich die VM so: start-vm  $VM -ComputerName $Server

    Wie kann ich ein Skript erstellen, was mir die VM Startet, egal auf welchem Host Sie sich gerade befindet? Vielen Dank für eure Hilfe.

    Freundliche Grüße

    Stiffi


    Dienstag, 12. März 2013 11:00

Antworten

  • Wie kann ich ein Skript erstellen, was mir die VM Startet, egal auf welchem Host Sie sich gerade befindet?

    Hallo Stiffi!
    Das musst du näher definieren! Es gibt unternehmen die Transferieren Ihre VMs Weltweit um dem Arm des Gesetzes ein Schnippchen zu schlagen...
    Egal welcher Host würde in diesem Fall Heissen: Irgendwo auf der Welt irgend wo im Internet oder jedem anderen Netz.... Das geht nicht! Viel Spaß beim suchen!
    Da die Maschine ja ausgeschaltet ist, kann sie nicht Antworten!

    Wenn du eine Liste hast mit Servern die als Host in frage kommen, dann kannst du die VM sicher finden!
    Eine Möglichkeit wäre es die Liste der Host Server zu durchlaufen und auf jedem Server zu versuchen die VM zu Starten.
    Dies verursacht auf den Servern wo die VM nicht vorhanden ist einen gewollten Error!
    Nur auf dem Host wo die VM vorhanden ist, bekommst du von dem Cmdlet Start-VM die VM zurückgemeldet wenn du den -Passthru Parameter benutzt!

    $VMHostServers = "Server1","Server2","Server3","Server4","Server5"

    $VMName = "MeineTolleVirtuelleMaschine"

    # Alle Server durchlaufen
    ForEach($VMHostServer in $VMHostServers) {

        # Wenn die VM gestartet werden konnte name des Servers ausgeben
        IF(Start-VM -Name $VMName -Computername $VMHostServer -Passthru -ErrorAction SilentlyContinue){
            Write-Host "Hyper-V VM: $VMName wurde auf dem Host: $VMHostServer gestartet!"
        }
    }

    Alternativ kannst du das selbe mit Get-VM versuchen!

    Kennst du eigentlich die Dokumentation zu den VM Cmdlets?
    http://technet.microsoft.com/en-us/library/hh848559.aspx



    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    • Als Antwort vorgeschlagen Kamil Kosek Freitag, 15. März 2013 09:23
    • Bearbeitet Peter Kriegel Freitag, 15. März 2013 10:02
    • Als Antwort markiert Stiffi11 Dienstag, 28. Mai 2013 08:28
    Freitag, 15. März 2013 06:52

Alle Antworten

  • Wie kann ich ein Skript erstellen, was mir die VM Startet, egal auf welchem Host Sie sich gerade befindet?

    Hallo Stiffi!
    Das musst du näher definieren! Es gibt unternehmen die Transferieren Ihre VMs Weltweit um dem Arm des Gesetzes ein Schnippchen zu schlagen...
    Egal welcher Host würde in diesem Fall Heissen: Irgendwo auf der Welt irgend wo im Internet oder jedem anderen Netz.... Das geht nicht! Viel Spaß beim suchen!
    Da die Maschine ja ausgeschaltet ist, kann sie nicht Antworten!

    Wenn du eine Liste hast mit Servern die als Host in frage kommen, dann kannst du die VM sicher finden!
    Eine Möglichkeit wäre es die Liste der Host Server zu durchlaufen und auf jedem Server zu versuchen die VM zu Starten.
    Dies verursacht auf den Servern wo die VM nicht vorhanden ist einen gewollten Error!
    Nur auf dem Host wo die VM vorhanden ist, bekommst du von dem Cmdlet Start-VM die VM zurückgemeldet wenn du den -Passthru Parameter benutzt!

    $VMHostServers = "Server1","Server2","Server3","Server4","Server5"

    $VMName = "MeineTolleVirtuelleMaschine"

    # Alle Server durchlaufen
    ForEach($VMHostServer in $VMHostServers) {

        # Wenn die VM gestartet werden konnte name des Servers ausgeben
        IF(Start-VM -Name $VMName -Computername $VMHostServer -Passthru -ErrorAction SilentlyContinue){
            Write-Host "Hyper-V VM: $VMName wurde auf dem Host: $VMHostServer gestartet!"
        }
    }

    Alternativ kannst du das selbe mit Get-VM versuchen!

    Kennst du eigentlich die Dokumentation zu den VM Cmdlets?
    http://technet.microsoft.com/en-us/library/hh848559.aspx



    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    • Als Antwort vorgeschlagen Kamil Kosek Freitag, 15. März 2013 09:23
    • Bearbeitet Peter Kriegel Freitag, 15. März 2013 10:02
    • Als Antwort markiert Stiffi11 Dienstag, 28. Mai 2013 08:28
    Freitag, 15. März 2013 06:52