Get-VM 不显示结果

Get-VM without showing results

我想 运行 测试一下虚拟机是否已经存在于 hyper-v

这是我的资料:

$VM = "DC"
$VMName = Get-VM -name $VM
if (!$VMname) { 
Write-Host "No VM named $VM exists" }
else
{ Write-Host "A VM named $VM already exists" }

但是,如果 VM 不存在,则会抛出此错误

PS C:\Users\sowen> $VMName = Get-VM -name $VM
Get-VM : A parameter is invalid. Hyper-V was unable to find a virtual machine with name DC.
At line:1 char:11
+ $VMName = Get-VM -name $VM
+           ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (DC:String) [Get-VM], VirtualizationInvalidArgumentException
    + FullyQualifiedErrorId : InvalidParameter,Microsoft.HyperV.PowerShell.Commands.GetVMCommand

                                                                                                          How could I silently find if a VM already exists on HyperV with powershell? 

根据 TechNet Get-VM 支持通用参数。使用 -ErrorAction SilentlyContinue 可能是完成同样事情的更简洁的方法

$VMName = Get-VM -name $VM -ErrorAction SilentlyContinue

或者只是一个简单的 try/catch 也可以达到目的。我只会使用上面的代码和一个简单的 If($VMName){} 来解释空值 return。