You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制作Windows 10一键安装脚本实现Node.js应用自动部署与开机自启

Windows 一键部署Node应用PowerShell脚本实现方案

你需要的所有操作都可以通过自定义PowerShell脚本实现一键运行完成,无需依赖Windows系统外的额外工具。

前置说明

脚本默认会自动申请管理员权限、配置环境变量、处理所有安装流程,你只需提前修改脚本内的自定义配置项即可使用。

完整一键部署脚本

将以下内容复制到文本编辑器,修改开头的配置参数后保存为后缀为.ps1的文件即可:

# ---------- 请修改以下自定义配置 ----------
$nodeVersion = "18.17.1" # 所需的Node.js版本号
$nodeInstallerUrl = "<你的Node.js安装包下载地址>" # Node.js对应版本的x64 msi安装包下载地址
$appPackageUrl = "<你的已编译Node应用压缩包下载地址>" # 应用zip压缩包下载地址
$appInstallDir = "C:\Program Files\MyNodeApp" # 应用本地安装目录
$appEntry = "app.js" # 应用入口文件名
$appServiceName = "MyNodeAppService" # 注册的Windows服务名称
# ---------- 配置结束 ----------

# 检查管理员权限,不足则自动提权
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
    exit
}

# 1. 创建应用安装目录
New-Item -ItemType Directory -Path $appInstallDir -Force | Out-Null
Write-Host "已创建应用安装目录:$appInstallDir"

# 2. 下载并静默安装Node.js
$nodeMsiPath = "$env:TEMP\node-$nodeVersion-installer.msi"
Write-Host "正在下载Node.js安装包..."
Invoke-WebRequest -Uri $nodeInstallerUrl -OutFile $nodeMsiPath -UseBasicParsing
Write-Host "正在安装Node.js..."
Start-Process msiexec.exe -ArgumentList "/i `"$nodeMsiPath`" /quiet /norestart" -Wait
# 刷新系统环境变量,让Node、npm命令立即生效
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
Write-Host "Node.js v$nodeVersion 安装完成"

# 3. 全局安装pm2及Windows服务适配组件
Write-Host "正在安装pm2运行管理工具..."
npm install -g pm2 pm2-windows-service
Write-Host "pm2安装完成"

# 4. 下载并解压应用包
$appZipPath = "$env:TEMP\$appServiceName.zip"
Write-Host "正在下载应用安装包..."
Invoke-WebRequest -Uri $appPackageUrl -OutFile $appZipPath -UseBasicParsing
Write-Host "正在解压应用安装包..."
Expand-Archive -Path $appZipPath -DestinationPath $appInstallDir -Force
Write-Host "应用解压完成"

# 5. 启动应用并配置pm2托管
Write-Host "正在启动应用..."
Set-Location $appInstallDir
pm2 start $appEntry --name $appServiceName
pm2 save
Write-Host "应用启动成功"

# 6. 配置为Windows服务实现开机自启
Write-Host "正在配置Windows开机自启服务..."
pm2-service-install -unattended
pm2 save
Write-Host "开机自启服务配置完成"

Write-Host "===== 所有操作已全部完成 ====="
pause

使用方法

  • 完成配置修改后,右键点击保存好的.ps1文件,选择「使用PowerShell运行」即可
  • 全程无需手动操作,等待脚本运行结束提示完成即可

注意事项

  • 如果运行脚本提示执行策略限制,可先以管理员身份打开PowerShell,执行Set-ExecutionPolicy RemoteSigned,输入Y确认后再运行脚本
  • 脚本运行全程需要保持网络连接,所有依赖包和应用都会自动下载
  • 部署完成后可以执行pm2 list查看应用运行状态,也可以在Windows服务列表中找到对应服务确认开机自启配置是否生效

内容的提问来源于stack exchange,提问作者Jake He

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 21:36:11