mirror of
https://github.com/dockur/windows.git
synced 2025-10-27 03:15:49 +00:00
62 lines
2.3 KiB
PowerShell
62 lines
2.3 KiB
PowerShell
# Define variables
|
|
$OpenSSH_URL = "https://github.com/PowerShell/Win32-OpenSSH/releases/latest/download/OpenSSH-Win64.zip"
|
|
$OpenSSH_Install_Path = "C:\Program Files\OpenSSH"
|
|
$OpenSSH_Zip = "$env:TEMP\OpenSSH-Win64.zip"
|
|
|
|
# Function to check if running as Administrator
|
|
function Test-Admin {
|
|
$currentUser = [Security.Principal.WindowsIdentity]::GetCurrent()
|
|
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal($currentUser)
|
|
return $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
|
|
}
|
|
|
|
if (-not (Test-Admin)) {
|
|
Write-Host "Please run this script as Administrator!" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# Ensure the install path exists
|
|
if (!(Test-Path $OpenSSH_Install_Path)) {
|
|
New-Item -ItemType Directory -Path $OpenSSH_Install_Path -Force
|
|
}
|
|
|
|
# Download OpenSSH if not already present
|
|
Write-Host "Downloading OpenSSH..." -ForegroundColor Cyan
|
|
Invoke-WebRequest -Uri $OpenSSH_URL -OutFile $OpenSSH_Zip
|
|
|
|
# Extract OpenSSH
|
|
Write-Host "Extracting OpenSSH..." -ForegroundColor Cyan
|
|
Expand-Archive -Path $OpenSSH_Zip -DestinationPath $OpenSSH_Install_Path -Force
|
|
|
|
# Check if install-sshd.ps1 exists
|
|
if (!(Test-Path "$OpenSSH_Install_Path\OpenSSH-Win64\install-sshd.ps1")) {
|
|
Write-Host "❌ Error: install-sshd.ps1 not found in $OpenSSH_Install_Path. Extraction failed!" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# Navigate to OpenSSH directory
|
|
Push-Location -Path $OpenSSH_Install_Path\OpenSSH-Win64
|
|
|
|
# Run install script
|
|
Write-Host "Installing OpenSSH service..." -ForegroundColor Green
|
|
powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
|
|
|
|
# Set SSHD service to start automatically
|
|
Write-Host "Setting SSHD to start automatically..." -ForegroundColor Green
|
|
if (Get-Service sshd -ErrorAction SilentlyContinue) {
|
|
Set-Service -Name sshd -StartupType Automatic
|
|
Start-Service sshd
|
|
} else {
|
|
Write-Host "⚠ OpenSSH service was not installed correctly. Try running install-sshd.ps1 manually." -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# Verify installation
|
|
$sshdStatus = Get-Service -Name sshd -ErrorAction SilentlyContinue
|
|
if ($sshdStatus.Status -eq 'Running') {
|
|
Write-Host "✅ OpenSSH installation successful! You can now connect via SSH." -ForegroundColor Green
|
|
} else {
|
|
Write-Host "⚠ OpenSSH installation failed. Try restarting your computer and rerun the script." -ForegroundColor Red
|
|
}
|
|
|
|
Pop-Location
|