none
Fehler: PowerShell Skript zum Clonen einer VM RRS feed

  • Frage

  • Hallo zusammen,

    ich versuche mittels PowerShell Skript eine meiner VMs zu klonen.

    Grundinfos:

    - VM ist ausgeschaltet

    - SCVMM 2012 R2 auf einem 2012 R2 Host

    Mein Script:

    $jobgroup = [guid]::NewGuid()
    $jobgroup2 = [guid]::NewGuid()
    $profile = [guid]::NewGuid()
    
    
    New-SCVirtualScsiAdapter -VMMServer SCVMM-2012.local.***.de -JobGroup $jobgroup -AdapterID 255 -ShareVirtualScsiAdapter $false -ScsiControllerType DefaultTypeNoType 
    
    
    New-SCVirtualDVDDrive -VMMServer SCVMM-2012.local.***.de -JobGroup $jobgroup -Bus 1 -LUN 0 
    
    $VMNetwork = Get-SCVMNetwork -VMMServer SCVMM-2012.local.***.de -Name "MIT DMZ" -ID "adcde45e-2adf-4b4d-93bd-a193f987998c"
    
    New-SCVirtualNetworkAdapter -VMMServer SCVMM-2012.local.***.de -JobGroup $jobgroup -MACAddressType Dynamic -VirtualNetwork "MIT DMZ" -VMwarePortGroup "SCVMM-84f608cb-0c70-4c2f-8039-77f3c1a50a35" -Synthetic -EnableVMNetworkOptimization $true -EnableMACAddressSpoofing $false -EnableGuestIPNetworkVirtualizationUpdates $false -IPv4AddressType Dynamic -IPv6AddressType Dynamic -VMNetwork $VMNetwork 
    
    
    Set-SCVirtualCOMPort -NoAttach -VMMServer SCVMM-2012.local.***.de -GuestPort 1 -JobGroup $jobgroup 
    
    
    Set-SCVirtualCOMPort -NoAttach -VMMServer SCVMM-2012.local.***.de -GuestPort 2 -JobGroup $jobgroup 
    
    
    Set-SCVirtualFloppyDrive -RunAsynchronously -VMMServer SCVMM-2012.local.***.de -NoMedia -JobGroup $jobgroup 
    
    $CPUType = Get-SCCPUType -VMMServer SCVMM-2012.local.***.de | where {$_.Name -eq "3.60 GHz Xeon (2 MB L2 cache)"}
    
    
    New-SCHardwareProfile -VMMServer SCVMM-2012.local.***.de -CPUType $CPUType -Name $profile -Description "Temporäre Hardwarekonfiguration zur Erstellung einer VM/Vorlage" -CPUCount 2 -MemoryMB 2048 -DynamicMemoryEnabled $false -MemoryWeight 5000 -VirtualVideoAdapterEnabled $false -CPUExpectedUtilizationPercent 20 -DiskIops 0 -CPUMaximumPercent 100 -CPUReserve 0 -NumaIsolationRequired $false -NetworkUtilizationMbps 0 -CPURelativeWeight 100 -HighlyAvailable $false -DRProtectionRequired $false -NumLock $false -BootOrder "CD", "IdeHardDrive", "PxeBoot", "Floppy" -CPULimitFunctionality $false -CPULimitForMigration $false -Generation 1 -JobGroup $jobgroup 
    
    
    
    $VirtualNetworkAdapter = Get-SCVirtualNetworkAdapter -VMMServer SCVMM-2012.local.***.de -Name "test-Main" -ID "1e293cd2-fb5a-4ed9-8973-931677d07694"
    
    Set-SCVirtualNetworkAdapter -VirtualNetworkAdapter $VirtualNetworkAdapter -NoLogicalNetwork -VLanEnabled $false -VirtualNetwork "MIT DMZ" -NoPortClassification -JobGroup $jobgroup2 
    
    $VM = Get-SCVirtualMachine -VMMServer SCVMM-2012.local.***.de -Name "test-Main" -ID "19f08068-547d-4080-b185-fcb5a4c2f2b6" | where {$_.VMHost.Name -eq "vmh3.local.***.de"}
    $VMHost = Get-SCVMHost -VMMServer SCVMM-2012.local.***.de | where {$_.Name -eq "vmh5.local.***.de"}
    $HardwareProfile = Get-SCHardwareProfile -VMMServer SCVMM-2012.local.***.de | where {$_.Name -eq $profile}
    $OperatingSystem = Get-SCOperatingSystem -VMMServer SCVMM-2012.local.***.de -ID "60246170-f5d4-4341-a609-02803a33bbe8" | where {$_.Name -eq "Other (64 bit)"}
    
    New-SCVirtualMachine -VM $VM -Name "test-NEU" -Description "TEST" -JobGroup $jobgroup2 -UseDiffDiskOptimization -RunAsynchronously -Path "D:\Virtual Hard Disks" -VMHost $VMHost -HardwareProfile $HardwareProfile -OperatingSystem $OperatingSystem -StartAction AlwaysAutoTurnOnVM -DelayStartSeconds 0 -StopAction SaveVM 
    
    
    
    

    Wenn ich das Skript nun ausführe, erhalte ich folgenden Fehler:

    Fehler (2903)Die angegebene Datei bzw. der angegebene Ordner "D:\Virtuelle Maschinen\test-Main\ExportFolder\test-Main\Virtual Machines\B360372F-7018-4AFE-BE9D-9EAFEEC7C41D.xml" wurde auf dem Server "vmh3.local.***.de" nicht gefunden. Möglicherweise ist die Datei bzw. der Ordner als Teil eines anderen Objekts erforderlich.

    Woher kommt das Verzeichnis 'ExportFolder'?

    Ich danke im Voraus.

    Dienstag, 14. Juli 2015 09:47

Antworten

  • Hi Christian,

    grundsätzlich solltest Du Dein Skript umstrukturieren - es ist schwierig, zu ermitteln, wann was passiert. Gruppiere beispielsweise alle "Get-..."-Befehle und versieh den Bereich dann mit einem Kommentar, dann weißt Du selbst auch noch später, was da passiert. ;-)

    In den Hyper-V-Einstellungen gibt es ja die Möglichkeit, die Standardordner für neue Festplatten- und Konfigurationsdateien vorzudefinieren. Der Standardpfad für die Konfig ist bei Dir wohl auf "D:\Virtuelle Maschinen" gesetzt.

    Dieser Ordner wird standardmäßig zur Erstellung hergenommen, falls Du den Parameter "-Path" nicht angibst. Ich könnte mir vorstellen, dass er dann auch standardmäßig den Ordner "ExportFolder" verwenden will. Im Assistenten legt er Ordner ja normal automatisch an, bei Skripten könnte es sein, dass der dann zuvor manuell angelegt werden muss.

    Aus meiner Sicht 2 Möglichkeiten:
    1. Leg den Ordner manuell per "md <Ordnerpfad>" (oder "New-Item <Ordnerpfad> -Type Directory") an
    2. Gib den Parameter "-Path" an

    Noch ein Hinweis: ich hab bisher noch nicht mit SCVMM gearbeitet, die Tipps sind also eher Vermutungen... ;-) aber vielleicht hilft es was.


    Gruß

    Ben

    MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)

    Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.

    Mittwoch, 15. Juli 2015 06:27

Alle Antworten

  • Hallo Christian,

    schauen Sie mal hier: SCVMM Console Crashes Periodically

    Gruß,

    Teodora


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Mittwoch, 15. Juli 2015 05:27
    Moderator
  • Hallo Christian,

    schauen Sie mal hier: SCVMM Console Crashes Periodically

    Gruß,

    Teodora


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Hallo Teodora,

    leider bezieht sich der Artikel nicht auf den bei mir auftretenden Fehler.

    Dennoch danke ich für die Antwort.

    Mittwoch, 15. Juli 2015 06:03
  • Hi Christian,

    grundsätzlich solltest Du Dein Skript umstrukturieren - es ist schwierig, zu ermitteln, wann was passiert. Gruppiere beispielsweise alle "Get-..."-Befehle und versieh den Bereich dann mit einem Kommentar, dann weißt Du selbst auch noch später, was da passiert. ;-)

    In den Hyper-V-Einstellungen gibt es ja die Möglichkeit, die Standardordner für neue Festplatten- und Konfigurationsdateien vorzudefinieren. Der Standardpfad für die Konfig ist bei Dir wohl auf "D:\Virtuelle Maschinen" gesetzt.

    Dieser Ordner wird standardmäßig zur Erstellung hergenommen, falls Du den Parameter "-Path" nicht angibst. Ich könnte mir vorstellen, dass er dann auch standardmäßig den Ordner "ExportFolder" verwenden will. Im Assistenten legt er Ordner ja normal automatisch an, bei Skripten könnte es sein, dass der dann zuvor manuell angelegt werden muss.

    Aus meiner Sicht 2 Möglichkeiten:
    1. Leg den Ordner manuell per "md <Ordnerpfad>" (oder "New-Item <Ordnerpfad> -Type Directory") an
    2. Gib den Parameter "-Path" an

    Noch ein Hinweis: ich hab bisher noch nicht mit SCVMM gearbeitet, die Tipps sind also eher Vermutungen... ;-) aber vielleicht hilft es was.


    Gruß

    Ben

    MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)

    Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)

    Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.

    Mittwoch, 15. Juli 2015 06:27