print spooler 服务本身并不像命令行程序那样接受复杂的启动参数,它的配置和启动行为主要通过 Windows 服务管理器 和 注册表 来控制。

您提到的“启动参数”通常指以下两种情况:
- 在服务属性中配置的“服务启动参数”:这其实是指定可执行文件路径和参数的地方,但
spoolsv.exe几乎不需要任何参数。 - 通过命令行工具
sc(Service Control) 来管理服务:这是最专业、最强大的方式,可以用来启动、停止、查询和修改服务的配置。
下面我将从这两个方面,并辅以一些相关的疑难解答技巧,为您详细说明。
通过服务管理器 (Services.msc)
这是最常见的管理方式,适合大多数用户。
-
打开服务管理器:
(图片来源网络,侵删)- 按
Win + R,输入services.msc,然后按回车。
- 按
-
找到 Print Spooler 服务:
- 在服务列表中找到名为 Print Spooler 的服务。
-
查看和修改属性:
- 双击打开它,切换到 “常规” 选项卡。
- 可执行文件的路径:在“服务名称”下方,您会看到“可执行文件的路径”,通常是
C:\Windows\System32\spoolsv.exe,这里的“参数”字段通常是空的。 - 启动类型:这里可以设置为“自动(延迟启动)”、“自动”或“手动”,这是控制服务何时启动的关键设置。
- 服务状态:可以点击“启动”、“停止”或“重新启动”来控制服务。
通过服务管理器,您无法为 spoolsv.exe 添加复杂的启动参数,这里的“参数”框通常为空,服务由系统按默认方式启动。
使用 sc 命令行工具
sc 是一个功能强大的命令行工具,用于与服务控制管理器进行交互,我们可以用它来查询服务的详细信息,包括其配置。

查询 Print Spooler 服务的配置
打开 命令提示符 (CMD) 或 PowerShell(以管理员身份运行),然后输入以下命令:
sc queryex spooler
输出示例:
SERVICE_NAME: spooler
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 RUNNING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 1232
FLAGS :
SERVICE_DESCRIPTION: Spools print jobs and manages all local and network print queues
这个命令会显示服务的运行状态、PID 等,但不会直接显示启动参数。
查看服务的“启动参数”(注册表位置)
sc 命令本身不直接显示一个叫“启动参数”的东西,服务的核心配置存储在注册表中,我们可以通过 sc 的 qc (Query Configuration) 命令来查看其核心配置项,其中就包括 BINARY_PATH_NAME(二进制路径名,即可执行文件和参数)。
sc qc spooler
输出示例:
[SC] QueryServiceConfig SERVICE_NAME: spooler
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\System32\spoolsv.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : Print Spooler
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
关键信息解读:
BINARY_PATH_NAME:C:\Windows\System32\spoolsv.exe- 这就是服务的“启动命令”,您可以看到,这里没有额外的参数。
spoolsv.exe的行为由系统、注册表中的其他键值以及其自身的逻辑决定。
- 这就是服务的“启动命令”,您可以看到,这里没有额外的参数。
START_TYPE:2代表AUTO_START(自动启动)。3是DEMAND_START(手动启动)。SERVICE_START_NAME:LocalSystem,表示服务以LocalSystem账户运行,拥有很高的权限。
疑难解答与相关技巧
虽然 spoolsv.exe 没有启动参数,但在管理打印服务时,以下场景和技巧非常实用:
场景1:如何以安全模式启动 Print Spooler?
有时打印机驱动程序会导致 spooler 崩溃,为了隔离问题,您可能需要在不加载第三方驱动的情况下启动 spooler,这通常通过 干净启动 或 安全模式 来实现。
-
进入安全模式:
- 通过“设置” > “更新和安全” > “恢复” > “高级启动” > “立即重新启动”。
- 电脑重启后,选择“疑难解答” > “高级选项” > “启动设置” > “重启”。
- 按下
F4或4键进入安全模式。
在安全模式下,Windows 只加载最基本的驱动和服务,第三方驱动不会加载,此时启动的 Print Spooler 是一个纯净的环境,非常适合排查驱动问题。
-
手动停止 Spooler 来删除打印任务: 如果打印任务卡死导致系统变慢,可以这样做:
- 以管理员身份打开 CMD。
- 停止服务:
net stop spooler - 删除打印任务文件(此操作会清空所有打印队列):
del /F /Q %SystemRoot%\System32\spool\PRINTERS\*.*
- 重新启动服务:
net start spooler
场景2:如何配置 Print Spooler 的日志记录?
您可以通过修改注册表来启用详细的日志记录,这对于诊断打印问题非常有帮助。
- 打开注册表编辑器:按
Win + R,输入regedit,回车。 - 定位到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print - 创建新的 DWORD (32 位) 值:
- 在右侧窗格中,右键点击空白处 > “新建” > “DWORD (32 位) 值”。
- 将其命名为
LogLevel。
- 修改值:
- 双击新建的
LogLevel,将其值设置为2(详细日志) 或1(基本日志)。0表示禁用日志。
- 双击新建的
- 重启 Print Spooler 服务 使设置生效。
日志文件通常位于:
C:\Windows\System32\spool\PRINTERS\
| 需求 | 解决方案 | 工具/方法 |
|---|---|---|
| 启动/停止服务 | 管理服务的基本生命周期 | services.msc (图形界面) 或 net start/stop spooler / sc start/stop spooler (命令行) |
| 查看服务配置 | 查看服务的路径、启动类型等核心信息 | sc qc spooler |
| 修改启动类型 | 设置服务是否及何时自动启动 | services.msc 或 sc config spooler start= auto |
| 解决驱动冲突 | 在一个干净的环境中启动服务 | 安全模式 |
| 清空打印队列 | 删除所有卡住的打印任务 | net stop spooler + 删除 C:\Windows\System32\spool\PRINTERS\ 文件夹内容 + net start spooler |
| 诊断打印问题 | 记录 spooler 的详细日志 | 修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print 中的 LogLevel 值 |
print spooler 服务没有传统意义上的命令行启动参数,它的行为由 Windows 服务管理器、注册表设置以及运行时的系统环境共同控制,对于高级管理,sc 命令是您的首选工具。
