none
Add-VMHardDiskDrive in einer PSSession bzw. Invoke-Command

    Frage

  • Ist es möglich in einer PSSession bzw. Invoke-Command Add-VMHardDiskDrive mit den nötigen Administrativen Rechten zu starten.

    Ich habe es schon mit -Credential usw. versucht, es klappt einfach nicht...

    Foreach ($OwnerNode in $SQLzuHyperVNode){
    Invoke-Command -ComputerName $OwnerNode.OwnerNode -Argu $DiskPath,$OwnerNode -Script {param ($DiskPath,$OwnerNode) Add-VMHardDiskDrive -VMName $OwnerNode -Path $DiskPath -ShareVirtualDisk}
    }

    "TestSQL1": Fehler beim Hinzufügen des Geräts "Virtual Hard Disk" (ID des virtuellen Computers 1593D47A-DEDB-438F-819E-F89CC7169DFE).
    
    "TestSQL1": Das Konto "Benutzer" verfügt nicht über die erforderlichen Berechtigungen zum Öffnen der Anlage "\\TestSQLShare\Test-vDisk3\TestSQL_data.VHDX". Fehler: "Allgemeiner "Zugriff verweigert"-Fehler" (0x80070005). (ID des virtuellen
    
    Computers: 1593D47A-DEDB-438F-819E-F89CC7169DFE)
    
    Sie besitzen nicht die Berechtigung zum Ausführen des Vorgangs. Wenden Sie sich an den Administrator, falls Sie diese Berechtigung benötigen.
    
        + CategoryInfo          : PermissionDenied: (Microsoft.HyperV.PowerShell.VMTask:VMTask) [Add-VMHardDiskDrive], VirtualizationOperationFailedException
    
        + FullyQualifiedErrorId : AccessDenied,Microsoft.HyperV.PowerShell.Commands.AddVMHardDiskDriveCommand
    
        + PSComputerName        : Test-Hyper-V-01
    



    • Bearbeitet Andre79 Freitag, 5. Januar 2018 16:48
    Freitag, 5. Januar 2018 15:42

Alle Antworten

  • Das sollte eigentlich gehen. Mal davon ausgehend das dein Account wirklich die erforderlichen Rechte besitzt, würde ich mal Schritt-für-Schritt vorgehen und eine interaktive PSSession öffnen und dann das ganze probieren.

    Könnte aber auch, falls du zu Authentifizierung Kerberos nutzt, das Double-Hop Problem sein. Das hängt davon ab wie Add-VMHardDiskDrive arbeitet.
    (Sehr) Vereinfacht gesagt gehts bei dem Double-Hop Problem darum, das du wenn du dich auf eine Maschine mit einem Account Remote per Kerberos verbindest, das dieses Ticket aus Sicherheitsgründen nicht einfach genutzt werden darf, um sich damit auf weiteren Maschinen anzumelden.
    Es gibt diverse Möglichkeiten das zu Umgehen, allerdings mit Vor-und Nachteilen: powershell-remoting-kerberos-double-hop-solved-securely

     

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Code Manager v5: Link
    (u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.

    Montag, 8. Januar 2018 13:02
    Moderator
  • Moin,

    ich habe festgestellt, dass die meisten Cmdlets, die etwas mit VHDs machen, remote nicht gehen. Sie gehen auch lokal nicht, wenn man PowerShell nicht mit erhöhten Rechten ausführt.

    Aber.

    Einige (nicht alle) dieser Cmdlets, so auch Add-VMHardDiskDrive, haben ja den ComputerName-Parameter, der in diesem Fall für den Hyper-V-Host steht. Das würde ich in diesem Fall versuchen zu verwenden...


    Evgenij Smirnov

    I work @ msg services ag, Berlin -> http://www.msg-services.de
    I blog (in German) @ http://it-pro-berlin.de
    my stuff in PSGallery --> https://www.powershellgallery.com/profiles/it-pro-berlin.de/
    Exchange User Group, Berlin -> http://exusg.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    Montag, 8. Januar 2018 14:02
  • Ok, dann hole ich mal etwas weiter aus. Kontext ist immer gut..... Der kleine Fitzel gehört zu einem etwas größerem Script in dem es darum geht die VHDX eines SQL Failoverclusters zu vergrößern. Ich habe schon mehrere Ansätze versucht, bin aber bei der Variante gelandet in der das Script auf einem der Hyper-V Hosts des Hyper-V Clusters als Administrator gestartet werden muss auf dem das SQL Failovercluster wohnt....Der User hat natürlich auch die entsprechenden Rechte im Hyper-V und SQL CLuster ;-P

    Die Schritte.

    1. Name des SQL Clusters eintragen -> VHDX die vom SQL Cluster verwaltet werden, werden ausgelesen und aufgelistet

    2. User wählt eine VHDX aus die vergrößert werden soll

    3. Sicherheitsabfrage vor beenden der SQL Instanz welche die VHDX nutzt

    4. SQL Instanz wird beendet (Rolle)

    5. VHDX wird von den SQL Servern getrennt (die Anzahl und welche SQL Server holt sich das Script selber auch auf welchem Hyper-V diese wohnen) Dieser Punkt funktioniert mit Invoke-Command!

    6. VHDX wird nach Eingabe der neuen Größe vergrößert (dieser Punkt funktioniert leider mit Invoke-Command nicht und muss von einem Hyper-V Host des Clusters ausgeführt werden)

    7. VHDX werden wieder an die SQL Server verbunden (Hier klemmt es gerade)

    8. HDD im Betriebssystem vergrößern (geht aktuell auch nur von einem SQL Server)

    9. SQL Instanz wieder starten (Rolle)


    • Bearbeitet Andre79 Montag, 8. Januar 2018 19:12
    Montag, 8. Januar 2018 19:05