PowerShell脚本中-ge参数无法识别:需补充什么才能正常工作?
.NET Framework版本检测脚本修复方案
错误原因
你遇到的问题是把PowerShell的**比较运算符-ge**当成了Get-ItemPropertyValue命令的参数来使用,而Get-ItemPropertyValue根本没有名为-ge的参数,所以触发了参数绑定错误。另外你原脚本里还多了一个多余的右括号),这也会导致语法错误。
正确写法
要让比较逻辑生效,需要先执行Get-ItemPropertyValue获取注册表中的Release值,再用-ge和目标数值528040做比较,有两种常用写法:
写法一:用括号包裹命令优先执行
(Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 528040
括号会强制PowerShell先执行内部的命令获取Release值,再将这个值和528040做大于等于比较,直接返回True或False。
写法二:分步赋值后比较
如果需要复用Release值,可以先把值存到变量里再比较:
$releaseVersion = Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release $releaseVersion -ge 528040
验证效果
执行上述任意一种写法,都会根据当前系统中.NET Framework 4.x Full版本的Release值,返回对应的布尔结果:
- 若Release值≥528040,输出
True - 若Release值<528040,输出
False
内容的提问来源于stack exchange,提问作者Scott Grant
相关产品推荐
相关产品推荐

