我正在尝试运行Get-VM并按名称过滤掉一些VM。
例如Get-VM | -name不像“Web1”和“Web2”
我该怎么做?
或类似的东西?但这不起作用
Get-VM -Name -notlike WEBIMAGE1,WEBIMAGE2
答案 0 :(得分:5)
将您的输出从Get-VM
传输到Where-Object
:
Get-VM | Where-Object { $_.Name -notlike '*Web1*' -and $_.Name -notlike '*Web2*'}
答案 1 :(得分:0)
实际上有一个比较运算符-like和-not like,所以我们可以用它来完成这个任务。请注意,-like使用通配符搜索' *',因此您需要使用-like "VM1*"
之类的查询来获取VM11,VM100等。
Get-VM | Where {($_.Name -notlike "Web1*") -and ($_.Name -notlike "Web2*")}
假设我们有虚拟机Web1,Web2,Web3和Web4,此命令将返回Web3和Web4。
如果您想了解更多关于比较运算符的信息和示例,例如-and -notlike和-like,请查看PowerShell帮助并运行Help About_comparison_operators