使用PowerShell获取.net版本并进行更新

时间:2016-08-12 09:26:29

标签: .net powershell

我是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语句吗?我真的迷路了。

1 个答案:

答案 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
}