none
Verschieben von Maschinen in Hyper-V auf Server 2012 RRS feed

  • Frage

  • Hallo,

    ich habe 6 VM-Server zwischen denen ich VM-verschieben möchte.

    Da ich Kerberos verwenden möchte muss ich ja bei allen Servern im AD etwas ändern.

    Nun habe ich das folgende script gefunden.

    leider gibt es beim Ablauf ein paar Fehlermeldungen.

    Auf welchem Server muss ich das starten ?

    Auf einem Domänencontroler oder auf einem Hyper-V Server ?

    Oder muss ich etwa einen Server einrichten der beides ist ????

    Auf dem Hyper-V Server kommen diese Fehlermeldungen

    PS W:\> .\hyperv-spiegelung.ps1
    IPTS12H41
    Enable VM Live Migration
    Set VM migration authentication to Kerberos
    Processing KCD for AD object
     Processing IPTS12H41, added Set-ADObject : Die Benennung "Set-ADObject" wurde nicht als Name eines Cmdlet, einer Funkti
    on, einer Skriptdatei oder
    eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
    enthalten), und wiederholen Sie den Vorgang.
    In W:\hyperv-spiegelung.ps1:24 Zeichen:7
    +       Set-ADObject -Identity $Computers.$ADObjectName -Add @{"msDS-AllowedToDele ...
    +       ~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Set-ADObject:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    
    cifsSet-ADObject : Die Benennung "Set-ADObject" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei ode
    r
    eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
    enthalten), und wiederholen Sie den Vorgang.
    In W:\hyperv-spiegelung.ps1:27 Zeichen:7
    +       Set-ADObject -Identity $Computers.$ADObjectName -Add @{"msDS-AllowedToDele ...
    +       ~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Set-ADObject:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    
    , Microsoft Virtual System Migration Service
     Processing IPTS12H42, added Set-ADObject : Die Benennung "Set-ADObject" wurde nicht als Name eines Cmdlet, einer Funkti
    on, einer Skriptdatei oder
    eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
    enthalten), und wiederholen Sie den Vorgang.
    In W:\hyperv-spiegelung.ps1:24 Zeichen:7
    +       Set-ADObject -Identity $Computers.$ADObjectName -Add @{"msDS-AllowedToDele ...
    +       ~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Set-ADObject:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException

    Auf dem AD diese:

    PS W:\> .\hyperv-spiegelung.ps1
    IPTS12H41
    Enable VM Live Migration
    Enable-VMMigration : Die Benennung "Enable-VMMigration" wurde nicht als Name eines Cmdlet, einer Funktion, einer
    Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad
    korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
    In W:\hyperv-spiegelung.ps1:16 Zeichen:4
    +    Enable-VMMigration -ComputerName $ADObjectName
    +    ~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Enable-VMMigration:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    
    Set VM migration authentication to Kerberos
    Set-VMHost : Die Benennung "Set-VMHost" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder
    eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
    enthalten), und wiederholen Sie den Vorgang.
    In W:\hyperv-spiegelung.ps1:18 Zeichen:4
    +    Set-VMHost -ComputerName $ADObjectName -VirtualMachineMigrationAuthentication ...
    +    ~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Set-VMHost:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    
    Processing KCD for AD object
     Processing IPTS12H41, added cifs, Microsoft Virtual System Migration Service
     Processing IPTS12H42, added cifs, Microsoft Virtual System Migration Service
     Processing IPTS12H48, added cifs, Microsoft Virtual System Migration Service
     Processing IPTS12H45, added cifs, Microsoft Virtual System Migration Service
     Processing IPTS12H46, added cifs, Microsoft Virtual System Migration Service
     Processing IPTS12H44, added cifs, Microsoft Virtual System Migration Service
    IPTS12H42
    Enable VM Live Migration
    Enable-VMMigration : Die Benennung "Enable-VMMigration" wurde nicht als Name eines Cmdlet, einer Funktion, einer
    Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad
    korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
    In W:\hyperv-spiegelung.ps1:16 Zeichen:4
    +    Enable-VMMigration -ComputerName $ADObjectName
    +    ~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Enable-VMMigration:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException

    PowerShell: Kerberos Constrained Delegation for Hyper-V Live Migration

    Posted on by

    If you want to use Move-VM to live migrate a Hyper-V VM from one host to another then you need to allow the source host to access the destination host to push the VM at it. The preferred way of doing this is by configuring Kerberos Constrained Delegation.

    Step one is to ensure that all your hosts are set to use Kerberos as the authentication protocol for Hyper-V Live Migrations. Step two is to add the KCD settings to the hosts’ Active Directory object Delegation settings.

    This script does both of the above for all Hyper-V hosts in the specified OU. If you add more hosts to the OU, just run this script again – it won’t complain nor will you end up with multiple KCD entries.

    $OU = [ADSI]"LDAP://OU=Hyper-V Hosts,OU=Servers,DC=rcmtech,DC=co,DC=uk"
    $DNSSuffix = "rcmtech.co.uk"
    $Computers = @{} # Hash table
    
    foreach ($child in $OU.PSBase.Children){
       # add each computer in the OU to the hash table
       if ($child.ObjectCategory -like '*computer*'){
          $Computers.Add($child.Name.Value, $child.distinguishedName.Value)
       }
    }
    
    # Process each AD computer object in the OU in turn
    foreach ($ADObjectName in $Computers.Keys){
       Write-Host $ADObjectName
       Write-Host "Enable VM Live Migration"
       Enable-VMMigration -ComputerName $ADObjectName
       Write-Host "Set VM migration authentication to Kerberos"
       Set-VMHost -ComputerName $ADObjectName -VirtualMachineMigrationAuthenticationType Kerberos
       Write-Host "Processing KCD for AD object"
       # Add delegation to the current AD computer object for each computer in the OU
       foreach ($ComputerName in $Computers.Keys){
          Write-Host (" Processing "+$ComputerName+", added ") -NoNewline
          $ServiceString = "cifs/"+$ComputerName+"."+$DNSSuffix,"cifs/"+$ComputerName
          Set-ADObject -Identity $Computers.$ADObjectName -Add @{"msDS-AllowedToDelegateTo" = $ServiceString}
          Write-Host ("cifs") -NoNewline
          $ServiceString = "Microsoft Virtual System Migration Service/"+$ComputerName+"."+$DNSSuffix,"Microsoft Virtual System Migration Service/"+$ComputerName
          Set-ADObject -Identity $Computers.$ADObjectName -Add @{"msDS-AllowedToDelegateTo" = $ServiceString}
          Write-Host (", Microsoft Virtual System Migration Service")
       }
    }

    Mein Rechner : Dell 7010 i7-3770 16Gb SSD Samsung 840 pro 256Gb NVIDIA quadro 4000 Meine Server Supermicro 2HE 2xE5620 oder E5335 oder E5420 oder E5520 und ein 2xamd opteron Platten direkt im server kein SAN Switche dlink Datensicherung VEEAM

    Montag, 21. Oktober 2013 15:03

Antworten

  • Hallo,

    die Fehler besagen, das er diverse CMDLETS nicht kennt, das liegt dran, das auf dem HyperV Server das Modul fuer ActiveDirectory fehlt, auf dem DC dagegen das Modul fuer Hyper-V.

    Am besten auf einer anderen Kiste die RSAT (Remote Service Administration Tools) installieren, findest du bei download.microsoft.com !

    Benoetigte Module kannst du mit import-module laden, die PS3 macht das automatisch.

    Beste Gruesse
    brima

    • Als Antwort markiert man10to Dienstag, 22. Oktober 2013 11:53
    Dienstag, 22. Oktober 2013 08:15

Alle Antworten

  • Hallo,

    die Fehler besagen, das er diverse CMDLETS nicht kennt, das liegt dran, das auf dem HyperV Server das Modul fuer ActiveDirectory fehlt, auf dem DC dagegen das Modul fuer Hyper-V.

    Am besten auf einer anderen Kiste die RSAT (Remote Service Administration Tools) installieren, findest du bei download.microsoft.com !

    Benoetigte Module kannst du mit import-module laden, die PS3 macht das automatisch.

    Beste Gruesse
    brima

    • Als Antwort markiert man10to Dienstag, 22. Oktober 2013 11:53
    Dienstag, 22. Oktober 2013 08:15
  • Hallo,

    danke !

    Der tipp war sehr wertvoll !

    Habs mir zwar schon fast gedacht aber so hab ich nun auf meinem W8 Rechner alles drauf

    Musste zwar erst etwas suchen um die Powershell ISE zu starten den als ICON gibt es das nicht. Ich muss erst ein Windows Powershell Fenster öffnen und dort dann powershell_ise starten ... warum auch immer, und wenn ich dann noch die Ausführung von scripten mit "Set-ExecutionPolicy Unrestricted" zugelassen habe dann geht es sofort.....

    Danke nochmal für die Hilfe.

    mfg

    Egbert


    Mein Rechner : Dell 7010 i7-3770 16Gb SSD Samsung 840 pro 256Gb NVIDIA quadro 4000 Meine Server Supermicro 2HE 2xE5620 oder E5335 oder E5420 oder E5520 und ein 2xamd opteron Platten direkt im server kein SAN Switche dlink Datensicherung VEEAM

    Dienstag, 22. Oktober 2013 11:56