安装-VSCode远程服务.psd1
|
@{ RootModule = '安装-VSCode远程服务.psm1' ModuleVersion = '2.0.0' GUID = '2e2606a2-1d8b-418e-9d6d-a714a7704bdc' Author = '埃博拉酱-机器人' CompanyName = '一致行动党' Copyright = '(c) 2026 一致行动党. 保留所有权利。' Description = @' 通过 SSH 在远程主机上安装与本机 VS Code 版本严格匹配的 VS Code Server。 功能特性: - 自动检测远程系统类型(Windows / Linux),无需用户指定;裸 IP/主机名连接时会从 ~/.ssh/config 反查该主机对应的账户与端口 - Windows 使用 HTTP 断点续传下载(基于 Range 头,中断后自动从已下载字节数处续传),按远程 PowerShell 版本自动选择通用版或 Win7 兼容版脚本;Win7 版压缩包由本机下载后中转上传,不在远程发起下载 - Linux 使用 sh 脚本下载安装,自动检测 x64 / arm64 / armhf 架构,支持 curl / wget,含备用下载源 - 自动读取本机 VS Code 提交号与发布通道(稳定版 / 预览版),下载与之完全对应的服务端 - 基于 SSH_ASKPASS 的密码复用,全程只需输入一次密码;已配置密钥免密的主机完全免交互 使用语法: 安装-VSCode远程服务 -远程主机 <主机名或IP> [-远程账户 <账户>] [-SSH端口 <端口>] [-本地版本 <预览版|稳定版>] 未指定账户或端口时,从 ~/.ssh/config 反查匹配项(优先 Host 精确/通配匹配,其次 HostName 等于主机名) 下载行为:Windows HTTP 断点续传 / Linux curl+wget 下载均无限重试、无超时 常用示例: # 基本用法(自动检测系统与版本) 安装-VSCode远程服务 192.168.1.100 -远程账户 user # 指定端口与预览版 安装-VSCode远程服务 10.15.49.6 -SSH端口 22112 -本地版本 预览版 -远程账户 v-jiamh '@ PowerShellVersion = '5.1' RequiredModules = @() FunctionsToExport = @('安装-VSCode远程服务') CmdletsToExport = @() VariablesToExport = @() AliasesToExport = @() PrivateData = @{ PSData = @{ Tags = @('PowerShell', 'VSCode', 'RemoteSSH', 'VSCodeServer', 'Windows', 'Linux', 'SSH') LicenseUri = 'https://opensource.org/licenses/MIT' ProjectUri = 'https://github.com/Ebola-Chan-bot/Install-VSCodeRemoteServer' ReleaseNotes = @' Windows 通用版脚本不再使用 BITS(SSH 远程登录会话下 BITS 必然报 0x800704DD),改为基于 HTTP Range 头的断点续传下载:单次运行内任何传输中断都会自动从已下载字节数处续传,无限重试、无超时,失败等待间隔逐次递增。 裸 IP/主机名连接不再回退本机用户名:未指定 -远程账户/-SSH端口 时,从 ~/.ssh/config 按 Host(精确与通配符)、HostName、Port 反查匹配的账户与端口;显式指定时仍以用户输入为准。 安装目录改为新版 exec server 布局(<数据目录>/cli/servers/<质量名>-<提交号>/server,质量名按通道取 Insiders/Stable),旧 bin/<提交号> 布局弃用,Windows 三个脚本与 Linux 脚本同步修改;实测(远程机 cli/servers 目录时间线)Remote-SSH 自 VS Code 1.126(Insiders,2026-06)起开始使用新布局并自 1.137 起完全落地,早于 1.126 的 VS Code 只识别旧 bin 布局,本模块安装的服务端对其不再生效。 补装 Remote-SSH 引导所需的远程 CLI(数据根目录下 <code|code-insiders>-<提交号>[.exe],Windows 取 cli-win32-<架构> 包,Linux 按架构取 cli-alpine-* 或 cli-linux-armhf 包,均含递增间隔的无限重试);同提交号且结构完整(product.json 与 bin 并存)的 Server 直接复用,不再重复下载。 进度显示周期改为动态调整:进度不足 2/3 时每个报告周期比上个周期多 1 秒,超过 2/3 后每个周期比上个周期少 1 秒(下限 1 秒);进度信息的时间戳仅保留时分秒,不再包含日期。 SCP 上传失败的报错信息在远端空间不足类错误(quota exceeded、No space left 等)时额外指明完整上传目标路径(连接目标:远程路径),便于定位是哪台主机的哪个路径空间不足。 上传目标路径改为绝对路径:安装前先解析远端登录目录(Linux 取 $HOME、Windows 取 %USERPROFILE%),scp 上传目标以该目录为基准拼成完整绝对路径,报错时不再出现 ./xxx 相对路径而无法判断具体位置;解析失败时退回相对路径。 空间不足类上传报错补充要上传的文件大小,便于估算需要腾出的远端空间。 '@ } } } |