将 PowerShell 脚本转换为 Windows 服务(ps1 转服务)

众所周知,PowerShell 在管理领域表现出色。然而,有时需要将 ps1 脚本作为服务运行。由于 PowerShell 最初是作为自动化和系统管理工具设计的,它无法以服务模式原生运行(PowerShell 转服务)。

当您需要在 Windows Server 2025 上运行后台监控脚本、自动清理任务或任何长时间运行的 PowerShell 进程时,尤其是在生产环境中,期望服务能自动启动并在用户注销后继续存在,这种限制会令人沮丧。

幸运的是,这个问题可以通过使用第三方工具来解决,这些工具允许您将任何可执行文件(或脚本)作为 Windows 服务运行。


将 EXE 文件作为 Windows 服务运行的工具

有许多实用程序可以将可执行文件转换为 Windows 服务,包括:

在本文中,我们将使用 EXE Service,因为它已经为 PowerShell 提供了现成的示例配置,并且同时支持图形界面和命令行。


将 PowerShell 脚本作为 Windows 服务运行

步骤 1:打开 EXE Service

安装 EXE Service 后,桌面上会出现一个快捷方式。

图形界面只是为了简化服务创建过程。 如果您在没有 GUI 的 Windows Server 上工作,您有两个选择:


步骤 2:创建新服务

EXE Service 已经包含一个现成的 PowerShell 转服务示例

只需点击 “从示例创建” 按钮。

将 PowerShell 转换为服务


步骤 3:配置您的 .ps1 文件路径

在出现的窗口中,您需要指定正确的路径:

请确保路径与您实际的 PowerShell 安装位置和脚本位置匹配。

PowerShell 转服务配置


步骤 4:保存并启动服务

点击 “创建服务” 以创建 Windows 服务。

如果您希望服务立即在此计算机上运行,请点击 “启动”

此后,您的 PowerShell 脚本将:


将服务传输到另一台服务器

如果您计划将服务配置移动到另一台 Windows Server,请遵循其文档中提供的官方 EXE Service 传输说明。

这种方法在跨多台服务器部署相同配置时特别有用。


结论

PowerShell 并非作为服务构建——但像 EXE Service 这样的工具可以干净利落地解决这个问题。包装您的 .ps1 脚本,它将在启动时启动,在注销后继续存在,并与 services.msc 无缝集成。无需复杂的变通方法,也无需使用计划任务技巧。只是一个直接、可供管理员使用的解决方案。


下载 EXE_Service.msi,几秒钟内即可将任何 .exe 文件转换为 Windows 服务。