如何禁用域控制器上的打印后台处理程序

Jacki

许多组织在 Windows Server 上安装和共享打印机。这并没有什么问题。这是维护和分发打印机的好方法。唯一的问题是,出于安全原因,您不应在域控制器上安装打印机。在本文中,您将了解如何在域控制器上禁用打印后台处理程序。

什么是打印后台处理程序服务?

Print Spooler 是一种管理打印过程的软件服务。后台处理程序接受来自计算机的打印作业并确保打印机资源可用。假脱机程序还安排打印作业发送到打印队列进行打印的顺序。在个人计算机的早期,用户必须等到文件打印后才能执行其他操作。得益于现代打印假脱机程序,打印现在对整体用户生产力的影响最小。

域控制器上打印后台处理程序服务的风险

虽然看似无害,但任何经过身份验证的用户都可以远程连接到域控制器的打印后台处理程序服务,并请求新打印作业的更新。此外,用户还可以告诉域控制器通过无约束委派将通知发送到系统。这些操作测试连接并公开域控制器计算机帐户凭据(后台打印程序归 SYSTEM 所有)。

由于存在暴露的可能性,域控制器和 Active Directory 管理系统需要禁用打印后台处理程序服务。建议的方法是使用组策略对象 (GPO)。

笔记:建议禁用所有域控制器上的后台打印程序。

笔记:禁用域控制器上的打印后台处理程序服务意味着用户无法在域控制器上安装的打印机上进行打印。您应该使用专用的打印服务器或将打印机安装在另一台服务器上。

Active Directory 安全审核报告

这是当我们在域控制器上启用打印机后台处理程序时运行 Active Directory 安全审核报告时的情况。

安全指示灯显示:

2021 年 6 月至 7 月期间,Windows Print Spooler 服务中发现了几个严重缺陷,这些缺陷直接影响域控制器上的 Print Spooler,从而实现远程代码执行:

在我们的示例中,两个域控制器启用了后台打印程序。

使用以下方法之一禁用打印后台处理程序服务后,我们再次运行 Active Directory 安全评估,如下所示。

一切看起来都不错。

如何禁用域控制器上的打印后台处理程序服务

有多种方法可以关闭后台打印程序服务。请遵循与您的组织最相关的方法。但是,第一种方法(GPO)是推荐的方法。

方法 1. 组策略对象 (GPO)

要使用 GPO 禁用后台打印程序,请按照下列步骤操作:

  1. 登录域控制器
  2. 打开组策略管理
  1. 右键单击域控制器 OU
  2. 选择在此域中创建一个 GPO,然后将其链接到此处...
  1. 命名 GPO禁用PrintSpooler服务然后单击好的
  1. 右键单击政府采购办公室然后单击编辑
  1. 导航至计算机配置 > Windows 设置 > 安全设置 > 系统服务
  2. 双击后台打印程序
  1. 选择定义此策略设置
  2. 选择残疾人
  3. 点击好的
  1. 开始命令提示符在域控制器上
  2. 运行以下命令以立即应用更改
gpupdate /force

方法2.服务管理器

要使用服务管理器禁用后台打印程序服务,请按照下列步骤操作:

  1. 登录域控制器
  2. 打开Windows 服务管理器
  1. 右键单击后台打印程序服务
  2. 点击特性
  1. 将启动类型更改为残疾人
  2. 点击停止服务状态下
  3. 点击好的

方法 3.PowerShell

要使用 PowerShell 禁用打印机后台处理程序服务,请按照下列步骤操作:

  1. 登录域控制器
  2. 开始Windows PowerShell
  3. 运行脚本以下
# Stop the Print Spooler service
Stop-Service -Name Spooler

# Disable the Print Spooler service
Set-Service -Name Spooler -StartupType Disabled

如果您想在所有域控制器上禁用它,请运行以下脚本。

# Retrieve all domain controllers in current domain
$DCs = Get-ADDomainController -Filter * | Select-Object -ExpandProperty HostName

# Loop through each domain controller
foreach ($DC in $DCs) {
    # Connect to remote domain controller
    $Session = New-PSSession -ComputerName $DC

    # Stop Print Spooler service
    Invoke-Command -Session $Session -ScriptBlock { Stop-Service -Name Spooler }

    # Disable Print Spooler service
    Invoke-Command -Session $Session -ScriptBlock { Set-Service -Name Spooler -StartupType Disabled }

    # Close remote session
    Remove-PSSession -Session $Session
}

就是这样!

结论

您了解了如何禁用域控制器上的打印后台处理程序服务。在所有域控制器上执行此操作至关重要。如果在域控制器上安装并共享打印机,请先将它们移至另一台服务器。之后,删除打印机并禁用后台打印程序。一旦禁用后台打印程序,用户就无法再进行打印。

您喜欢这篇文章吗?您可能还喜欢使用组策略管理 Microsoft Office。不要忘记关注我们并分享这篇文章。

更多阅读:如何在 Windows Server 2008 域控制器中禁用密码过期