我正在尝试获取其Uid不匹配的VMWare快照列表' XYZ'使用 PowerCLI 。
我已经编写了以下代码来执行此操作。
$body +=echo ""`r`n""`r`n"-----Open VMware snapshots other than Uid 'XYZ'-----"`r`n""`r`n""
Get-VM | Get-snapshot | where {($_.Uid -notmatch 'XYZ')} | ForEach-Object {
$object=New-Object -TypeName PSObject -Property @{
VM_Name = $_.VM
Created = $_.Created
Size = "$([math]::Round($_.SizeGB, 2)) GB"
SnapshotName = $_.name
Description = $_.extensiondata.description
}
$body += $object | ft | out-string
Write-Output $object
}
在PowerCLI中运行该代码将返回所有VMWare快照,包括具有Uid' XYZ'的快照,这不应该发生。
如何修改代码?
答案 0 :(得分:0)
尝试在Where-Object比较中使用-ne
或-notlike
,因为看起来我们正在比较字符串而不使用正则表达式。
Get-VM | Get-snapshot | where {($_.Uid -notlike 'XYZ')} | ForEach-Object ...