Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Проверка версии .net и установка нужной (http://forum.oszone.net/showthread.php?t=325077)

Elven 21-03-2017 11:20 2721636

Проверка версии .net и установка нужной
 
Интрига, как обычно, раскрыта в названии темы. Нужно проверить версию .net framework и если она ниже 4.5.2 скачать и установить его же.
И еще один подпункт: это часть скрипта, посему хотелось бы чтобы скрипт дожидался окончания установки .net'a и записывал в лог если установка не удалась.

Kazun 21-03-2017 12:04 2721658

http://stackoverflow.com/questions/3...k-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"
        }
    }
}


Elven 21-03-2017 14:32 2721720

Скачивать не захотел почему-то, немного поменял - заработало.
Код:

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"
        }
    }
}



Время: 18:24.

Время: 18:24.
© OSzone.net 2001-