Показать полную графическую версию : [решено] Проверка версии .net и установка нужной
Интрига, как обычно, раскрыта в названии темы. Нужно проверить версию .net framework и если она ниже 4.5.2 скачать и установить его же.
И еще один подпункт: это часть скрипта, посему хотелось бы чтобы скрипт дожидался окончания установки .net'a и записывал в лог если установка не удалась.
http://stackoverflow.com/questions/3487265/powershell-script-to-return-versions-of-net-framework-on-a-machine
if (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' | %{$_ -match 'Release'})
{
$NetBuildVersion = 379893
$CurrentRelease = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full').Release
if ($CurrentRelease -lt $NetBuildVersion)
{
$SourceURI = "https://download.microsoft.com/download/B/4/1/B4119C11-0423-477B-80EE-7A474314B347/NDP452-KB2901954-Web.exe"
$FileName = $SourceURI.Split("/")[-1]
$BinPath = Join-Path $env:TEMP -ChildPath $FileName
if (!(Test-Path $BinPath))
{
(New-Object Net.WebClient).DownloadFile($SourceURI,$BinPath)
}
$process = Start-Process -FilePath $BinPath -ArgumentList "/q /norestart" -Wait -PassThru
if ($process.ExitCode -eq 0){
"$FileName has been successfully installed"
}
else {
throw "Error exit code: $($process.ExitCode) file $FileName"
}
}
}
Скачивать не захотел почему-то, немного поменял - заработало.
if (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' | %{$_ -match 'Release'})
{
$NetBuildVersion = 379893
$CurrentRelease = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full').Release
if ($CurrentRelease -lt $NetBuildVersion)
{
$SourceURI = "https://download.microsoft.com/download/B/4/1/B4119C11-0423-477B-80EE-7A474314B347/NDP452-KB2901954-Web.exe"
$FileName = $SourceURI.Split("/")[-1]
$BinPath = Join-Path $env:TEMP -ChildPath $FileName
if (!(Test-Path $BinPath))
{
Invoke-WebRequest $SourceURI -outfile $BinPath
}
$process = Start-Process -FilePath $BinPath -ArgumentList "/q /norestart" -Wait -PassThru
if ($process.ExitCode -eq 0){
"$FileName has been successfully installed"
}
else {
throw "Error exit code: $($process.ExitCode) file $FileName"
}
}
}
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.