Remove-SCVirtualMachine
从 VMM 中删除虚拟机对象。
语法
Remove-SCVirtualMachine
[-VM] <VM>
[-SkipFileRemoval]
[-Force]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-WhatIf]
[-Confirm]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
说明
Remove-SCVirtualMachine cmdlet 删除部署在主机上或存储在 Virtual Machine Manager (VMM) 库服务器上的虚拟机对象。
此 cmdlet 从 VMM 数据库中删除虚拟机记录,删除与虚拟机关联的所有文件,并从部署虚拟机的主机上或从存储虚拟机的库服务器中删除虚拟机。
如果主机上的文件夹是由 VMM 为此虚拟机创建的,而不是由 Hyper-V 或 VMware 创建,如果该文件夹不包含其他虚拟机或其他数据,则可以在删除虚拟机后使用文件系统删除该文件夹。
如果指定 Force 参数,则此 cmdlet 仅从 VMM 数据库中删除虚拟机。 它不会删除虚拟机本身。
此 cmdlet 在成功后返回对象,该对象的值为 MarkedForDeletion 属性$True。 如果失败,该 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,该 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 提示)的 ID。 此参数允许你审核 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 来检索该对象。