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

Windows下关闭PowerShell终端后保持进程后台运行的方法

在Windows中让PowerShell脚本关闭终端后持续后台运行的方法

以下是几种可行的方案,能让你的PowerShell脚本脱离终端会话,在后台持续运行:

方案一:使用Start-Process分离进程

通过Start-Process启动独立的PowerShell进程,原终端关闭后不会影响新进程的运行。执行以下命令:

Start-Process powershell.exe -ArgumentList "-NoProfile -WindowStyle Hidden -Command .\start.ps1 -accountUuid '{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}' -repositoryUuid '{XXXXXX-XXXXX-XXXX-XXXX-XXXXXXXXXX}' -runnerUuid '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX}' -OAuthClientId XXXXXXXXXXXXXXXXX -OAuthClientSecret XXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXX -workingDirectory '..\temp'"
  • -NoProfile:避免加载用户配置文件,加快启动速度并减少干扰
  • -WindowStyle Hidden:让新的PowerShell窗口在后台运行,不显示界面

方案二:将脚本注册为Windows服务(推荐长期运行)

使用NSSM(Non-Sucking Service Manager)将脚本包装成Windows服务,服务会随系统启动自动运行,且完全独立于终端。步骤如下:

  1. 下载对应系统版本的NSSM工具,将其放置在系统路径(如C:\Windows\System32)或脚本所在目录
  2. 打开PowerShell,执行以下命令安装服务:
nssm install BackgroundRunnerService
  1. 在弹出的图形配置窗口中设置:
    • Path:填写PowerShell的完整路径,例如C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • Arguments:填写脚本路径及参数(建议使用绝对路径避免问题):
      -NoProfile -ExecutionPolicy Bypass -Command "C:\绝对路径\start.ps1" -accountUuid '{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}' -repositoryUuid '{XXXXXX-XXXXX-XXXX-XXXX-XXXXXXXXXX}' -runnerUuid '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX}' -OAuthClientId XXXXXXXXXXXXXXXXX -OAuthClientSecret XXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXX -workingDirectory 'C:\绝对路径\temp'
      
    • Working Directory:填写脚本所在的绝对目录
  2. 点击「Install Service」完成安装,之后可通过以下命令管理服务:
    # 启动服务
    nssm start BackgroundRunnerService
    # 停止服务
    nssm stop BackgroundRunnerService
    # 删除服务
    nssm remove BackgroundRunnerService confirm
    

方案三:创建Windows计划任务

通过任务计划程序让脚本在独立会话中运行,不受终端关闭影响:

  1. 打开「任务计划程序」,点击「创建基本任务」
  2. 设置触发器(如「当计算机启动时」或手动触发)
  3. 操作选择「启动程序」,填写:
    • 程序或脚本:powershell.exe
    • 添加参数(可选):
      -NoProfile -ExecutionPolicy Bypass -Command "C:\绝对路径\start.ps1" -accountUuid '{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX}' -repositoryUuid '{XXXXXX-XXXXX-XXXX-XXXX-XXXXXXXXXX}' -runnerUuid '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX}' -OAuthClientId XXXXXXXXXXXXXXXXX -OAuthClientSecret XXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXX -workingDirectory 'C:\绝对路径\temp'
      
  4. 在「设置」选项卡中勾选「不管用户是否登录都要运行」,并根据需求选择「不存储密码」(脚本无交互需求时适用)
  5. 完成创建后,任务会在后台独立运行,终端关闭不会影响它

注意事项

  • 建议使用绝对路径替代相对路径,避免因工作目录变化导致脚本无法找到依赖文件
  • 若脚本执行被阻止,需添加-ExecutionPolicy Bypass参数临时绕过PowerShell执行策略限制
  • 长期运行的场景优先选择「注册为服务」或「计划任务」,稳定性更高

内容的提问来源于stack exchange,提问作者Manal Goyal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:31:00