none
Export-VM指令一問 RRS feed

  • 問題

  • 請問各位,

    我安裝了PsHyperV的元件後,使用以下指令可以正常匯出Hyper-V,如下指令:

    Export-VM -server "Test-LAB" -vm "LAB" -path "E:\backup\" -copystate -wait -force

    當匯出完畢後,我再重複執行指令會出現以下錯誤如下:

    因為已有名為 'E:\backup\LAB\Virtual Machines' 的匯出目錄,所以無法匯出虛擬機器 'LAB'。

    在PowerShell語法中是否有參數或語法可以匯出時在建立新資料夾?

    ""在CMD中可以利用%date:~0,4%%date:~5,2%%date:~8,2%這段語法建立當天日期的資料夾""

    2012年7月26日 上午 06:43

解答

  • Hi

    您可以這樣做

    #取得現在日期轉換成YYYYMMDD

    $var=get-date -UFormat %Y%m%d

    #將字串加入到備份路徑中

    $var="E:\backup\"+$var

    #匯出VM$var指定的路徑

    Export-VM -server "Test-LAB" -vm "LAB" -path $var -copystate -wait -force

    這樣備份將會在Backup底下產生YYYYMMDD的日期名稱的資料夾,然後將備份VM放在裡面

    請注意紅字的地方,紅字的部分有對您原先的指令做修改


    Best Regards, Daniel Liang


    • 已編輯 Daniel-Liang 2012年7月26日 上午 07:56
    • 已標示為解答 張瑋 2012年7月26日 上午 08:14
    2012年7月26日 上午 07:52

所有回覆

  • Hi

    您可以這樣做

    #取得現在日期轉換成YYYYMMDD

    $var=get-date -UFormat %Y%m%d

    #將字串加入到備份路徑中

    $var="E:\backup\"+$var

    #匯出VM$var指定的路徑

    Export-VM -server "Test-LAB" -vm "LAB" -path $var -copystate -wait -force

    這樣備份將會在Backup底下產生YYYYMMDD的日期名稱的資料夾,然後將備份VM放在裡面

    請注意紅字的地方,紅字的部分有對您原先的指令做修改


    Best Regards, Daniel Liang


    • 已編輯 Daniel-Liang 2012年7月26日 上午 07:56
    • 已標示為解答 張瑋 2012年7月26日 上午 08:14
    2012年7月26日 上午 07:52
  • 謝謝您!!

    若我有2台要同時匯出不同地方可否變更為如下??

    $var=get-date -UFormat %Y%m%d

    $var1="E:\backup\LAB\"+$var

    $var2="E:\backup\LAB1\"+$var

    Export-VM -server "Test-LAB" -vm "LAB" -path $var1 -copystate -wait -force

    Export-VM -server "Test-LAB" -vm "LAB1" -path $var2 -copystate -wait -force

    • 已編輯 張瑋 2012年7月26日 上午 08:23
    2012年7月26日 上午 08:14
  • Hi

    可以,這樣的你的兩行指令,實際執行時,他會變成如最後兩行指令(假設是今天)

    原批次指令

    $var=get-date -UFormat %Y%m%d

    $var1="E:\backup\LAB\"+$var

    $var2="E:\backup\LAB1\"+$var

    Export-VM -server "Test-LAB" -vm "LAB" -path $var1 -copystate -wait -force

    Export-VM -server "Test-LAB" -vm "LAB1" -path $var2 -copystate -wait -force

    相當於下面兩行指令

    Export-VM -server "Test-LAB" -vm "LAB" -path E:\backup\LAB\20120726 -copystate -wait -force

    Export-VM -server "Test-LAB" -vm "LAB1" -path E:\backup\LAB1\20120726 -copystate -wait -force


    Best Regards, Daniel Liang



    • 已編輯 Daniel-Liang 2012年7月26日 上午 08:33 修正錯字
    2012年7月26日 上午 08:30
  • Dear Daniel,

    謝謝您的熱心教導,

    抱歉再請教您一個問題!!

    因為語法完成後依然是在powershell狀態下面,而非CMD模式,

    當整段語法結束後,因該需要下哪些指令可以自動將視窗關閉?

    我剛剛把那過語法包至export-vm.ps1

    export-vm裡面語法如下:

    $var=get-date -UFormat %Y%m%d

    $var="E:\backup\LAB\"+$var

    Export-VM -server "Test-LAB" -vm "LAB" -path $var -copystate -wait -force

    c:\scripts\vmbackup\StartStopVms.ps1 c:\scripts\vmbackup\VmNamesStart.txt 0

    謝謝!!

    2012年7月26日 上午 08:56
  • Hi

    因為您的Powershell有帶-NoExit的參數,拿掉就可以了

    不然的話,就是在Export-VM.ps1的最後加上Exit也可以


    Best Regards, Daniel Liang

    2012年7月27日 上午 05:26
  • 謝謝您!!

    2012年7月27日 上午 05:37