共用方式為


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 來擷取此物件。