【问题标题】:Use expression/property in a condition在条件中使用表达式/属性
【发布时间】:2020-03-06 12:26:12
【问题描述】:

我想在 if 语句中使用某个表达式/属性,并且还想列出某个输出。我根本不知道如何在脚本中进一步使用这些。

$tools = Get-VM | select name, @{N=”ToolsStatus”; E={$_.Extensiondata.Summary.Guest.ToolsStatus}}

[string]$Output = ""
foreach ($vm in $vmtools){
$Output = $Output + "$($vm.name) ----- $($vm.ToolsVersion)`n"


}
if ("ToolsStatus" -eq "toolsOld") {
    Write-Output "CRITICAL, These VM's have out of date tools: `n $Output"
    $Status = 2 enter code here
  1. 如何在 if 语句中使用“ToolStatus”/E={$_.Extensiondata.Summary.Guest.ToolsStatus}}?
  2. 我知道我可以使用 $vm.name 来列出名称,但假设我想获得来自 @{N=”ToolsStatus”; 的输出。 E={$_.Extensiondata.Summary.Guest.ToolsStatus}} 也是?

【问题讨论】:

    标签: powershell properties powercli vmware-tools


    【解决方案1】:

    $tools 这里将包含一组具有属性NameToolStatus 的VM 对象。 $tools.ToolStatus 返回$tools 中每个对象的所有ToolStatus 属性的值。要将单个值与值集合进行比较,您可以使用 -contains-in 运算符。

    # Checking if any ToolStatus is toolsOld
    if ($tools.ToolStatus -contains 'toolsOld') {
        # Any number of VMs has a toolstatus of toolsOld
    }
    
    # Return the VM objects(s) that contain(s) toolStatus value of toolsOld
    $tools | Where ToolStatus -eq 'toolsOld'
    
    # Check Individual VMs for ToolStatus
    foreach ($tool in $tools) {
        if ($tool.ToolStatus -eq 'toolsOld') {
            Write-Output "$($tool.Name) has a tool status of toolsOld"
        }
    }
    
    # List ToolStatus Value for VM Name MyServer
    $tools | Where Name -eq 'MyServer' | Select -Expand ToolStatus
    ($tools | Where Name -eq 'MyServer').ToolStatus
    $tools.where({$_.Name -eq 'MyServer'}).ToolStatus
    
    # List ToolStatus for all VMs
    $tools.ToolStatus
    

    当您使用Select-Object 时,您将使用您选择的属性创建一个自定义对象。 ToolStatus 这是一个计算属性。尽管创建属性的语法与仅键入属性的名称不同,但您仍然可以像对象上的任何其他属性一样检索其值。在 object.property 语法中使用成员访问运算符 . 是最简单的。

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多