【发布时间】:2019-08-06 21:04:51
【问题描述】:
这里和#Powershell 超级新。我正在编写一个脚本来检查安装的 .Net Framework 版本是否大于或等于存储在变量中的版本号。
我遇到的问题是在设置过滤到版本号的变量时。
$installed = (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' | Get-ItemPropertyValue -Name Version | Where { $_.Version -ge $software }) -ne $null
我想比较一下在
中找到的 .Net Framework 版本HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
到 Windows 10 计算机上安装的任何版本,以查看它是否大于或等于。我试过比较注册表中的版本号,但版本与我正在做的事情更相关。
我想将消息写入控制台和文本文件
$software = '4.7.02053'
$installed = (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' | Get-ItemPropertyValue -Name Version | Where { $_.Version -ge $software }) -ne $null
If(-not $installed) {
"$software is NOT installed."| Out-File -FilePath C:\Pre-Req_Log.txt -append
Write-Host "'$software' is NOT installed.";
pause
} else {
"$software is installed."| Out-File -FilePath C:\Pre-Req_Log.txt -append
Write-Host ".Net FW '$software' is installed."
}
我的预期结果是看到“4.7.02053”已(或未)安装在文本文件中,并且它是正确的。是否相等并不重要,只要是那个版本或更高版本我都会很高兴。
【问题讨论】:
标签: powershell scripting