从Get-Snapshot PowerShell脚本中排除部分服务器名称

时间:2016-10-12 15:38:22

标签: powershell snapshot powercli

我要做的是获取VM快照列表,但排除包含VM命名约定“ABCDE”的任何快照,并且快照超过3天,并将其输出到文本文件。

我到目前为止的脚本如下,但它不排除以“ABCDE”开头的服务器。

# Get VM Snapshot Information excluding anything with HEIEPC

Get-VM | Where {$_.Name -ne "ABCDE"} |
    Get-Snapshot |
    Where-Object { $_.Created -lt (Get-Date).AddDays(-3) } |
    Format-List | Out-File $Log -Append

1 个答案:

答案 0 :(得分:0)

您正在使用完全名称" ABCDE"检查虚拟机。使用" ABCDE"检查名称​​开始的虚拟机使用-like运算符和通配符:

Get-VM | Where { $_.Name -notlike 'ABCDE*' } | ...

如果要使用子串" ABCDE"排除VM,请创建模式*ABCDE*。他们名下的任何地方(不仅仅是开头)。