如何在Windows 11离线环境下用PowerShell部署OpenSSH Server并实现登录
离线安装Windows 11 OpenSSH Server(PowerShell脚本实现)
前置关键准备
必须从联网的同版本Windows 11机器提取匹配的OpenSSH Server CAB包,第三方下载的包大概率因版本不兼容导致安装失败:
- 打开联网Win11的管理员PowerShell,执行以下命令获取OpenSSH Server的完整能力名称:
输出示例:Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'Name : OpenSSH.Server~~~~0.0.1.0 - 执行命令将对应CAB包保存到本地路径(例:
D:\temp):
完成后将生成的CAB文件拷贝到离线Windows 11机器中。Save-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 -Path D:\temp
离线安装脚本(管理员PowerShell运行)
将以下脚本保存为Install-OpenSSH-Server-Offline.ps1,替换脚本中的CAB路径后执行:
# 替换为你拷贝到离线机器的CAB文件实际路径 $cabPath = "C:\Your\Cab\File\Path\OpenSSH.Server~~~~0.0.1.0~amd64~~.cab" # 安装CAB包 DISM /Online /Add-Package /PackagePath:$cabPath # 验证安装状态并完成后续配置 $sshCapability = Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' if ($sshCapability.State -eq 'Installed') { Write-Host "OpenSSH Server 安装成功" -ForegroundColor Green # 启动服务并设置开机自启 Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' Set-Service -Name ssh-agent -StartupType 'Automatic' # 配置防火墙允许SSH入站连接(按需执行) New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH SSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 # 输出登录命令示例 Write-Host "`n可使用以下命令登录:`ssh $env:USERDOMAIN\$env:USERNAME@$env:COMPUTERNAME`" -ForegroundColor Cyan } else { Write-Host "OpenSSH Server 安装失败,请检查CAB文件是否匹配当前Windows 11版本" -ForegroundColor Red }
针对你之前问题的说明
- 第三方MSI无法启动脚本:第三方MSI存在权限或系统依赖兼容性问题,微软原生CAB包更适配Windows 11环境
- CAB安装失败:你之前使用的第三方CAB版本与系统不匹配,必须从同版本Windows 11提取对应包
- 无ISO无法使用官方方法:
Save-WindowsCapability是官方提供的离线提取能力包方案,无需依赖系统ISO
登录验证
安装完成后,从已安装OpenSSH Client的机器执行以下命令即可登录:
ssh domain\username@servername
输入目标机器用户密码即可完成登录,如需免密登录可配置SSH公钥认证。
内容的提问来源于stack exchange,提问作者Gaara
相关产品推荐
相关产品推荐

