7e4a35ad7e
We intend to expand the nightly E2E test to cover multiple distros and platforms. Change the naming structure for "Linux client" to the more precise "Ubuntu Bionic", and "Windows" to "Windows 2016" to make it easier to add new targets without additional refactoring.
54 lines
1.7 KiB
PowerShell
Executable file
54 lines
1.7 KiB
PowerShell
Executable file
Set-StrictMode -Version latest
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$RunningAsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
|
|
if (!$RunningAsAdmin) {
|
|
Write-Error "Must be executed in Administrator level shell."
|
|
exit 1
|
|
}
|
|
|
|
# Force TLS1.2
|
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
|
|
|
Try {
|
|
|
|
# install portable SSH instead of the Windows feature because we
|
|
# need to target 2016
|
|
$repo = "https://github.com/PowerShell/Win32-OpenSSH"
|
|
$version = "v8.0.0.0p1-Beta"
|
|
$url = "${repo}/releases/download/${version}/OpenSSH-Win64.zip"
|
|
|
|
# TODO: check sha!
|
|
Write-Output "Downloading OpenSSH from: $url"
|
|
Invoke-WebRequest -Uri $url -Outfile "OpenSSH-Win64.zip"
|
|
Expand-Archive ".\OpenSSH-Win64.zip" "C:\Program Files"
|
|
Rename-Item -Path "C:\Program Files\OpenSSH-Win64" -NewName "OpenSSH"
|
|
|
|
& "C:\Program Files\OpenSSH\install-sshd.ps1"
|
|
|
|
# Start the service
|
|
Start-Service sshd
|
|
Set-Service -Name sshd -StartupType 'Automatic'
|
|
|
|
Start-Service ssh-agent
|
|
Set-Service -Name ssh-agent -StartupType 'Automatic'
|
|
|
|
# Enable host firewall rule if it doesn't exist
|
|
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' `
|
|
-Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
|
|
|
|
# Set powershell as the OpenSSH login shell
|
|
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" `
|
|
-Name DefaultShell `
|
|
-Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" `
|
|
-PropertyType String -Force
|
|
|
|
|
|
} Catch {
|
|
Write-Error "Failed to install OpenSSH."
|
|
$host.SetShouldExit(-1)
|
|
throw
|
|
}
|
|
|
|
Write-Output "Installed OpenSSH."
|