电源外壳;在分配

时间:2016-07-28 16:21:55

标签: powershell

我正在尝试使用以下代码将对象属性分配给字符串:

    $VMDynMemMax = Get-SCVirtualMachine $_.Name | Select -Expand DynamicMemoryMaximumMB

但有时DynamicMemoryMaximumMB可能为null。发生这种情况时,脚本会抛出InvalidArgument错误。我相信这是因为我使用-Expand并且Null无法扩展。

我正在使用-Expand,因为我后来在使用label和expression的自定义表中使用字符串$ VMDynMemMax。如果我不使用-Expand,则表中生成的值将显示为

@{VariableName=Value}

而不仅仅是

Value

在扩展或分配之前,我该如何检查属性的Null值?

2 个答案:

答案 0 :(得分:0)

我喜欢在[string]下使用IsNullOrEmpty方法来测试Null值,但不是这样,然后执行操作。

If (-NOT [string]::IsNullOrEmpty($VMDynMemMax)) {
    #DO WORK
}

答案 1 :(得分:0)

@TessellatingHeckler - 使用(Get-SCVirtualMachine $_.Name).DynamicMemoryMaximumMB为我工作!