PowerShell 6 is open-source and maintained in a public repository on GitHub. There are frequent releases. Here is a way how you can find out the download URL for the latest available PowerShell 6 release:
$AllProtocols = [Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12' [Net.ServicePointManager]::SecurityProtocol = $AllProtocols # get the URL for the latest PowerShell 6 release $url = "https://github.com/PowerShell/PowerShell/releases/latest?dummy=$(Get-Random)" $request = [System.Net.WebRequest]::Create($url) $request.AllowAutoRedirect=$false $response = $request.GetResponse() $realURL = $response.GetResponseHeader("Location") $response.Close() $response.Dispose() # get the current version from that URL $v = ($realURL -split '/v')[-1] # create the download URL for the release of choice # (adjust the end part to target the desired platform, architecture, and package format) $platform = "win-x64.zip" $static = "https://github.com/PowerShell/PowerShell/releases/download" $url = "$static/v$version/PowerShell-$version-$platform"
This chunk of code generates the download URL for the Windows 64-bit release in ZIP format. If you’d like to download a different release, simply adjust the platform part defined in $platform.
Once you have the download URL, you can automate the rest accordingly: download the ZIP file, unblock and unpack it, then launch PowerShell 6:
# define the place to download to $destinationFile = "$env:temp\PS6\powershell6.zip" $destinationFolder = Split-Path -Path $destinationFile # create destination folder if it is not present $existsDestination = Test-Path -Path $destinationFolder if ($existsDestination -eq $false) { $null = New-Item -Path $destinationFolder -Force -ItemType Directory } # download file Invoke-WebRequest -Uri $url -OutFile $destinationFile # unblock downloaded file Unblock-File -Path $destinationFile # extract file Expand-Archive -Path $destinationFile -DestinationPath $destinationFolder -Force
Finally, let’s create a shortcut on your desktop that points to PowerShell6 and lets you easily launch the shell:
# place a shortcut on your desktop $path = "$Home\Desktop\powershell6.lnk" $obj = New-Object -ComObject WScript.Shell $scut = $obj.CreateShortcut($path) $scut.TargetPath = "$destinationFolder\pwsh.exe" $scut.IconLocation = "$destinationFolder\pwsh.exe,0" $scut.WorkingDirectory = "$home\Documents" $scut.Save() # run PowerShell 6 Invoke-Item -Path $path
psconf.eu – PowerShell Conference EU 2019 – June 4-7, Hannover Germany – visit www.psconf.eu There aren’t too many trainings around for experienced PowerShell scripters where you really still learn something new. But there’s one place you don’t want to miss: PowerShell Conference EU – with 40 renown international speakers including PowerShell team members and MVPs, plus 350 professional and creative PowerShell scripters. Registration is open at www.psconf.eu, and the full 3-track 4-days agenda becomes available soon. Once a year it’s just a smart move to come together, update know-how, learn about security and mitigations, and bring home fresh ideas and authoritative guidance. We’d sure love to see and hear from you!