在 Windows Server 上部署 .exe 程序,通常是指将一个可执行文件(如桌面应用、服务程序或后台工具)安装并配置为长期运行。具体部署方式取决于该 .exe 程序的类型和用途。以下是常见的几种部署方法及步骤:
一、确定程序类型
首先确认你的 .exe 是以下哪种类型:
- 普通桌面应用程序(需要用户登录才能运行)
- Windows 服务程序(可在后台自动运行,无需用户登录)
- 控制台/后台程序(如 Python 脚本打包成 exe,Node.js 打包等)
不同类型的程序部署方式不同。
二、部署方式
✅ 方式1:作为 Windows 服务部署(推荐用于后台服务)
适用于长期运行的后台程序(如 Web 服务、监控工具等)。
步骤:
-
安装 NSSM(Non-Sucking Service Manager)
- 下载地址:https://nssm.cc/download
- 解压后选择对应系统版本(32/64位)
-
使用 NSSM 将 .exe 注册为服务
- 打开命令提示符(管理员权限)
- 运行:
nssm install 服务名 - 在弹出窗口中:
- Path: 浏览选择你的
.exe文件路径 - Startup directory: 设置程序的工作目录
- (可选)设置日志路径、启动失败处理等
- Path: 浏览选择你的
-
启动服务
nssm start 服务名 -
设置开机自启
- 默认情况下,NSSM 创建的服务是自动启动的。
- 可通过
services.msc查看并确认启动类型为“自动”。
? 优点:无需用户登录即可运行,稳定可靠。
✅ 方式2:使用 Task Scheduler 定时/开机启动
适用于不需要常驻内存,但需定期运行或开机启动的 .exe。
步骤:
- 打开 任务计划程序(Task Scheduler)
- 创建基本任务:
- 触发器:选择“当计算机启动时”或“登录时”
- 操作:启动程序,选择你的
.exe
- 勾选“不管用户是否登录都要运行”
- 勾选“使用最高权限运行”
⚠️ 注意:若选择“不管用户是否登录都要运行”,需提供账户密码(建议用专用服务账户)。
✅ 方式3:放入启动文件夹(仅限用户登录时运行)
适用于 GUI 程序或依赖用户会话的程序。
- 路径:
C:Users用户名AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup或全局启动:
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp
将 .exe 的快捷方式复制进去即可。
❌ 缺点:必须用户登录才运行,不适合服务器后台服务。
✅ 方式4:使用 PowerShell 或批处理脚本后台运行
创建 .bat 或 .ps1 脚本启动程序,并隐藏窗口。
示例 .vbs 静默启动脚本(避免弹出黑框):
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:pathtoyourapp.exe" & Chr(34), 0
Set WshShell = Nothing
然后通过任务计划程序调用这个 .vbs 文件实现无窗体运行。
三、注意事项
| 项目 | 建议 |
|---|---|
| 权限 | 使用专用服务账户运行,避免使用 Administrator |
| 日志 | 确保程序输出日志到文件,便于排查问题 |
| 防火墙 | 若程序监听端口,需在防火墙放行 |
| 杀毒软件 | 添加 .exe 到白名单,防止误杀 |
| 更新机制 | 考虑后续如何更新程序(手动替换?自动化?) |
四、验证部署成功
- 查看任务管理器是否有进程
- 检查事件查看器(Event Viewer)中的应用程序日志
- 查看程序生成的日志文件
- 使用
services.msc查看服务状态(如果是服务)
示例:用 NSSM 部署一个 Python 打包的 exe 服务
nssm install MyPythonApp
# Path: C:MyAppapp.exe
# Startup directory: C:MyApp
# Log on as: Local System Account
然后启动:
nssm start MyPythonApp
总结
| 需求 | 推荐方式 |
|---|---|
| 后台长期运行 | NSSM 创建 Windows 服务 ✅ |
| 开机运行,无需登录 | 任务计划程序 ✅ |
| 用户登录后运行 | 启动文件夹 |
| 定时运行 | 任务计划程序 + 触发器 |
如果你能提供具体的 .exe 类型(比如是 Web 程序、爬虫、API 服务等),我可以给出更详细的部署方案。
CDNK博客