2016-08-12 3 views
0

Я новичок в powershell, и я хотел бы проверить, установлены ли .net 3.5 и 4.5 или нет. Если оба установлены, делать нечего, но если один или оба они отсутствуют, я хочу, чтобы powershell установил его. Попадая .net установленные версии:Получить .net версию с powershell и обновить

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 * 

Может кто-нибудь помочь мне с, если заявление? Я действительно потерялся там.

ответ

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 
}