我是PowerShell的新手,我想检查是否安装了.net 3.5和4.5。如果两者都安装了,那么无事可做,但是如果缺少其中一个或两个,我希望PowerShell安装它。 获得.net安装版本:
ls -r "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP" | %{ gp $_.PSPath } | Where-Object Version | Select-Object @{Name="dNET"; Expression = {($_.PSParentPath -split "\\" | Select-Object -Last 1).Padright(4).Substring(0,4).Replace(" ","")}},Version,PSPath | Where-Object dNET -like 'v*' | ft *
任何人都可以帮我解决if语句吗?我真的迷路了。
答案 0 :(得分:0)
删除ft *
语句并将输出分配给变量,然后使用Where-Object
确定是否安装了任何版本:
$installedVersions = ls -r "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP" | %{ gp $_.PSPath } | Where-Object Version | Select-Object @{Name="dNET"; Expression = {($_.PSParentPath -split "\\" | Select-Object -Last 1).Padright(4).Substring(0,4).Replace(" ","")}},Version,PSPath | Where-Object dNET -like 'v*'
if(-not($installedVersions |Where-Object dNET -eq 'v3.5')){
# install v3.5
}
if(-not($installedVersions |Where-Object dNET -eq 'v4.5')){
# install v4.5
}