Powershell. Установка и удаление PowerShell 5.1

Обновление

Разберем установку PowerShell версии 5.1, а так же его удаление, на Windows Server 2012
Этому обновлению соответствует KB3191565

По умолчанию в Windows Server 2012 установлен PowerShell версии 3.0

WMF 5.1 в своих пререквизитах не требует установки промежуточных версий, в отличии от упраздненного WMF 5.0.
Поэтому мы сразу можем перейти к установке Windows Management Framework 5.1

Ознакомиться со всеми требованиями к установке можно тут

Откат версии на более низкую

Если у вас есть необходимость вернуться к более низкой версии PowerShell, из-за неправильно выполненной установки,  либо ради проведения тестов, то вы можете попробовать следующий вариант.

Находим список установленных WMF:

Самый быстрый вариант, это использовать скрипт который парсит логи на предмет наличия в них записей о работе с WMF

Показать скрипт поиска обновлений
$Session = [activator]::CreateInstance([type]::GetTypeFromProgID("Microsoft.Update.Session","localhost"))         
$Searcher = $Session.CreateUpdateSearcher()            
$HistoryCount = $Searcher.GetTotalHistoryCount()          
$Searcher.QueryHistory(0,$HistoryCount) | ForEach-Object -Process {            
    $Title = $null            
    if($_.Title -match "\(KB\d{6,7}\)"){            
        # Split returns an array of strings            
        $Title = ($_.Title -split '.*\((?<KB>KB\d{6,7})\)')[1]            
    }else{            
        $Title = $_.Title            
    }                       
    $Result = $null            
    Switch ($_.ResultCode)            
    {            
        0 { $Result = 'NotStarted'}            
        1 { $Result = 'InProgress' }            
        2 { $Result = 'Succeeded' }            
        3 { $Result = 'SucceededWithErrors' }            
        4 { $Result = 'Failed' }            
        5 { $Result = 'Aborted' }            
        default { $Result = $_ }            
    }            
    New-Object -TypeName PSObject -Property @{            
        InstalledOn = Get-Date -Date $_.Date;            
        Title = $Title;            
        Name = $_.Title;            
        Status = $Result;
        Description = $_.Description            
    }            
            
} | ?{ $_.Description -match 'Windows Management Framework'} | ?{ $_.Status -eq 'Succeeded' } | Sort -Property InstalledOn

Еще один способ найти обновление — это использовать командлет Get-HotFix:

Get-HotFix KB3191565

Его минус в том, что он не отображает имя программы к которой относится Update, а так же его точное время установки.

Затем выполняем команду на удаление выбранного KB, соответствующего нужному нам WMF:

wusa /uninstall /kb:3191565

И последним шагом заново выполняем установку PowerShell 5.1

wusa C:\W2K12-KB3191565-x64.msu

 

Про развертывание PowerShell в домене средствами GPO читайте тут

Добавить комментарий

Ваш адрес email не будет опубликован.