2012-07-18 32 views
0

我已經創建了一個腳本,可以在虛擬機中創建新快照,然後刪除該虛擬機中除6個最新快照以外的所有快照。我想找到一種方法,使我的錯誤的腳本檢查,確認一切正常,但從未使用過的try/catch在PowerShell中前很好奇,如果任何人都可以引導我,我做錯了什麼:使用Try進行確認,獲取

$server = $args[0] 
$date = get-date 
try{ 
    new-snapshot -vm $server -name "Auto Created via Powershell" -description $date 
} 
catch{ 
    [system.exception] 
    "Not finding"} 
get-snapshot -vm $server | sort -property created -desc | select -skip 6 | foreach-object{remove-snapshot $_ -confirm:$false} 
if (get-snapshot -vm $server | select -first 6){ 
    write-host "script is keeping current 6 as expected" 
} 

我的代碼,我正在製作新的快照第一部分工作正常,問題是,我要確認所有,但6個最新的快照被刪除的第二部分。目前我正在嘗試使用if語句來確認,但是我沒有從if語句獲得任何輸出。無論如何,我很好奇,是否有更好的方法來執行腳本的第二部分來確認,而不是使用if語句來確認腳本保留當前最新的6個快照。

謝謝!

+0

你有什麼異常?發佈完整的錯誤消息通常很有幫助。 (如果需要過濾) – Guvante 2012-07-18 16:53:28

回答

1

所以試試看,認爲它可能工作。

$server = $args[0] 
    $date = get-date 
    try{ 
     new-snapshot -vm $server -name "Auto Created via Powershell" -description $date 
     } 
    catch{ 
      [system.exception] 
     "Not finding"} 

    get-snapshot -vm $server | sort -property created -desc | select -skip 6 | foreach-object{remove-snapshot $_ -confirm:$false} 

$ListOfVms = get-snapshot -vm $server 

if ($ListOfVms.count -eq 6){ 
    write-host "script is keeping current 6 as expected" 
    } 

這應該計算虛擬文件的數量,如果它等於6,寫入你想要的文本。

相關問題