none
hyper-v merge in progress RRS feed

  • Frage

  • Hallo,

    nutze das cmdlet 'Update-VMSnapshot' mit einem anschließenden 'Stop-VM' damit die .avhd in die .vhd gespielt wird (merge). Soweit so gut:

    -----------------------------------------------------------------

    $VM = "TEST-PC1"
    $Server = "SERVER-1"
    $Date = (get-date -uformat "%m/%d/20%y")
    $SSname = "Snapshot - " + $Date
    #
    Update-VMSnapshot -Server $Server -vm $VM -force
    sleep 10
    Get-VMSnapshot -Server $Server -vm $VM -Current | Rename-VMSnapshot -newname $SSname -Force
    sleep 5
    stop-vm -Server $Server -vm $VM -force -wait
    write-host ""
    write-host ".. merging old Snapshot-Files to VHD - please wait .."
    write-host ""
    sleep 60
    start-vm -Server $Server -vm $VM -wait -HeartBeatTimeout 300

    ------------------------------------------------------------------

    .. hier lasse ich einfach 60 sec. warten befor die VM wieder gestartet wird, egal ob das 'mergen' beendet ist oder noch läuft ..

    Ich möchte nun die % des 'merge'-Vorgangs auslesen und mit 'write-progress' darstellen.

    Auslesen ginge hiermit, kann mir bitte bitte wer helfen dies nach write-progress zu pipen:

    -----------------------------------------------------------------------------

    Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_ConcreteJob" | Where {$_.ElementName - eq 'Merge in Progress'}

    -----------------------------------------------------------------------------

    .. hier gibs ein 'PercentComplete' was ausgelesen werden könnte .. aber wie nach write-progress pipen, wenn überhaupt möglich, danke im Voraus für Eure Hilfe ..

    gruß

    Andy

    Montag, 8. Oktober 2012 17:51

Antworten

  • So habs nun raus:

    while($true){
    # Merge auslesen 
    $State = get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_ConcreteJob" | Where {$_.ElementName -eq 'Zusammenführung wird ausgeführt'}
    # Zusammensetzen der Status ausgabe 
    $status  = "% finished (" + $State.PercentComplete.ToString() + "%)" 
    # Progressbar ausgeben mit den nötigen Werten 
    Write-Progress -activity "Merge in progress" -status $status -PercentComplete ($State.PercentComplete)}

    .. in eng. natülich mit -eq 'Merge in Progress' (wie oben bei der Frage) .. funkt wunderbar bei mir ..

    cu

    • Als Antwort markiert andymolly Montag, 8. Oktober 2012 19:27
    Montag, 8. Oktober 2012 19:26