Remove-SCVirtualMachine
從 VMM 移除虛擬機物件。
語法
Remove-SCVirtualMachine
[-VM] <VM>
[-SkipFileRemoval]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
Description
Remove-SCVirtualMachine Cmdlet 會移除部署在主機上或儲存在 Virtual Machine Manager (VMM) 連結庫伺服器上的虛擬機物件。
此 Cmdlet 會從 VMM 資料庫刪除虛擬機記錄、刪除與虛擬機相關聯的所有檔案,並將虛擬機從部署所在的主機或從儲存所在的連結庫伺服器中移除。
如果 VMM 為這部虛擬機建立主機上的資料夾,而不是由 Hyper-V 或 VMware 建立,而且如果該資料夾不包含其他虛擬機或其他數據,您可以在移除虛擬機之後,使用檔案系統來刪除資料夾。
如果您指定 Force 參數,此 Cmdlet 只會從 VMM 資料庫刪除虛擬機。 它不會刪除虛擬機本身。
此 Cmdlet 會在成功時傳回 物件,其值為 $True MarkedForDeletion 屬性。 如果失敗,Cmdlet 會傳回錯誤訊息。
範例
範例 1:移除部署在主機上的特定虛擬機
PS C:\> $VM = Get-SCVirtualMachine -VMMServer "VMMServer01.Contoso.com" | where { $_.VMHost.Name -eq "VMHost01.Contoso.com" -and $_.Name -eq "VM01" }
PS C:\> Remove-SCVirtualMachine -VM $VM
第一個命令會取得在 VMHost01 上部署名為 VM01 的虛擬機物件,然後將虛擬機物件儲存在 $VM 變數中。
第二個命令會移除儲存在 $VM 中的物件,並從其主機上的檔案系統中刪除對應的虛擬機檔案。
範例 2:移除名稱包含特定字串的所有虛擬機
PS C:\> $VMs = @(Get-SCVirtualMachine -VMMServer "VMMServer01.Contoso.com" | where { $_.Name -Match "VM0" } )
PS C:\> $VMs | Remove-SCVirtualMachine
第一個命令會取得所有部署在名稱包含字串 VM0 的主機上的所有虛擬機對象,然後將這些虛擬機物件儲存在名為 $VMs 的數位中。
第二個命令會移除$VMs陣列中的每個虛擬機物件,並從每個主機上的檔系統刪除對應的虛擬機檔案。
範例 3:移除儲存在 VMM 連結庫伺服器上的特定虛擬機
PS C:\> $VM = Get-SCVirtualMachine -VMMServer "VMMServer1.Contoso.com" | where { $_.LibraryServer.Name -eq "LibraryServer01.Contoso.com" -and $_.Name -eq "VM02" }
PS C:\> Remove-SCVirtualMachine -VM $VM
第一個命令會取得物件,代表名為 VM03 的虛擬機,然後將虛擬機物件儲存在$VM中。 在此範例中,只有一個名為 VM03 的虛擬機存在。
第二個命令會從連結庫移除代表 VM03 的物件,並從連結庫伺服器上的文件系統中刪除對應的虛擬機檔案。
範例 4:從 VMM 連結庫移除多個儲存的虛擬機
PS C:\> $VMs = Get-SCVirtualMachine -VMMServer "VMMServer01.Contoso.com" | where { $_.LibraryServer.Name -eq "LibraryServer01.Contoso.com" -and $_.Name -match "VM0" }
PS C:\> $VMs | Remove-SCVirtualMachine -Confirm
第一個命令會取得名稱包含字串 VM0 且儲存在 LibraryServer01 上的所有虛擬機物件。 命令接著會將虛擬機物件儲存在名為 $VMs 的陣列中。
第二個命令會將儲存在 $VMs 中的每個虛擬機對象傳遞至目前的 Cmdlet,這會從連結庫移除每個物件,並從連結庫伺服器上的檔案系統中刪除對應的虛擬機檔案。 Confirm 參數會提示您確認是否要刪除每部虛擬機。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Force
指出此 Cmdlet 只會從 VMM 資料庫刪除虛擬機。 它不會刪除虛擬機本身。
注意
對於使用服務範本或 VMRole 部署的虛擬機,會忽略此參數,而且也會刪除實際的虛擬機。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-JobVariable
指定追蹤和儲存作業進度的變數。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-OnBehalfOfUser
指定用戶名稱。 這個 Cmdlet 代表此參數指定的用戶運作。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-OnBehalfOfUserRole
指定使用者角色。 若要取得使用者角色,請使用 Get-SCUserRole Cmdlet。 這個 Cmdlet 代表此參數指定的使用者角色運作。
類型: | UserRole |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-PROTipID
指定觸發此動作之效能和資源優化提示 (PRO 提示) 的識別碼。 此參數可讓您稽核 PRO 秘訣。
類型: | Guid |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-RunAsynchronously
表示作業會以異步方式執行,讓控件立即返回命令殼層。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-SkipFileRemoval
表示此 Cmdlet 不會直接移除虛擬機相關檔案。 如果您指定此參數,則不會嘗試直接刪除任何檔案。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-VM
指定虛擬機物件。
類型: | VM |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
備註
此 Cmdlet 需要 VMM 虛擬機物件,您可以使用 get-SCVirtualMachine Cmdlet 來擷取此物件。