当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 GPO 将打印机部署到域用户和计算机

作者:精品下载站 日期:2024-12-14 23:34:07 浏览:13 分类:玩电脑

使用 GPO 将打印机部署到域用户和计算机


您可以使用组策略 (GPO) 安装共享打印机并将其连接到 Active Directory 域中的特定用户、计算机和组。在本文中,我们将了解如何在域用户登录 Windows 计算机时自动连接共享打印机。

考虑以下配置:组织中有 3 个部门。各部门的用户必须使用自己的彩色网络打印机打印文档。作为管理员,您必须根据用户的部门配置共享打印机的自动部署。

通过组策略将打印机部署到域用户

在 AD 中创建三个新安全组(SharedPrinter_SalesSharedPrinter_ITSharedPrinter _Managers)并向其中添加部门用户(您可以按照“在 Active Directory 中创建动态组”一文自动将用户添加到域组)。您可以在 Active Directory 用户和计算机控制台中创建组 (

dsa.msc

、ADUC)或使用 New-ADGroup cmdlet:

New-ADGroup "SharedPrinter_Sales" -path 'OU=Groups,OU=Paris,DC=a-d,DC=com' -GroupScope Global -PassThru
  1. 运行域组策略编辑器(

    GPMC.msc

    ),创建一个新策略 print_AutoConnect 并将其链接到具有目标用户的 OU;

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

    如果您的域中拥有少量共享网络打印机(最多 30-50 台),则可以使用单个 GPO 来配置它们。如果您具有包含 AD 站点、组织单位 (OU) 的复杂域结构,并将一些 AD 管理任务委托给分支机构管理员,则最好创建多个打印机部署策略。例如,每个 AD 站点或组织单位 (OU) 都有一个策略。

  2. 切换到策略编辑模式并展开用户配置 -> 首选项 -> 控制面板设置 -> 打印机。通过选择新建->共享打印机创建新的策略项;

    如果您想通过 IP 地址连接网络打印机(直接连接,无需打印服务器),请选择 TCP/IP 打印机

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

  3. 更新指定为操作。在共享路径字段中,输入共享打印机的 UNC 地址,例如,

    \srv-par-print\hpsales

    (在我的例子中,所有打印机都连接到打印服务器

    \srv-par-print

    )。此处可以指定是否将此打印机设置为默认打印机;

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

    您可以在 Active Directory 中发布共享打印机。为此,请在共享选项卡上的打印机设置中启用在目录中列出选项。

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

    这种情况下,您可以通过搜索AD找到您的打印机(无需手动输入打印机名称)。只需在选择打印机时单击三个点按钮,单击立即查找按钮,然后从列表中选择点打印机名称即可。

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

  4. 转到通用选项卡,并指定必须在当前用户上下文中连接打印机(在登录用户的安全上下文中运行)。另外,选中项目级定位选项并点击定位

  5. 使用 GPP 定位时,您需要指定此打印机连接策略应仅应用于 SharedPrinter_Sales 组成员。为此,请转到新建项目 -> 安全组并输入SharedPrinter_Sales作为组名称;

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

    请注意,此限制不会阻止域用户使用文件资源管理器手动连接此打印机。要限制对打印机的访问,您必须更改打印服务器上的打印机安全权限并仅允许特定组进行打印。

  6. 以相同的方式为其他用户组创建网络打印机安装选项。

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

还有一个旧的 GPO 部分用于配置打印机:计算机配置 -> 策略 -> Windows 设置 -> 部署的打印机。但这种为用户安装打印机的方法不如上述使用 GPP 的方法灵活。

检查当用户登录加入域的 Windows 计算机时,共享网络打印机现在是否自动连接。

[玩转系统] 使用 GPO 将打印机部署到域用户和计算机

使用此组策略时,仅当用户的计算机上已安装适当的打印驱动程序时,才会为用户安装新打印机(驱动程序必须首先手动安装或直接集成到 Windows 映像中)。

如果没有为此打印机安装驱动程序,则通过 GPO 分配的打印机将不会添加到用户。在这种情况下,事件 ID 为 4096 的事件将出现在事件日志 -> 应用程序日志中:

Source: Group Policy PrintersThe user 'HPLaserJet400' preference item in the 'prnt_AutoConnect}' Group Policy Object did not apply because it failed with error code '0x800702e4 The requested operation requires elevation.' This error was suppressed.

[玩转系统] 使用 GPO 将打印机部署到域用户和计算机

事实上,即使设置了指向和打印限制策略,现在没有管理员权限的 Windows 用户也无法安装打印机驱动程序。

允许非管理员用户通过 GPO 安装打印机驱动程序

2021 年,打印后台处理程序服务中发现了一个严重漏洞,为了修复该漏洞,微软在安装打印驱动程序时更改了 Windows 的默认行为 (PrintNightmare CVE-2021-34527)。现在,没有管理员权限的用户无法安装打印机驱动程序 (KB5005033),包括使用指向和打印限制 GPO 选项。 Windows 驱动程序(签名和未签名)只能由管理员安装。

但是,有一种解决方法可以允许非管理员用户安装打印机驱动程序。为此,您需要更改 GPO。

  1. 转到以下 GPO 部分“计算机配置”->“Windows 设置”->“安全设置”->“本地策略”->“安全选项”。启用选项设备:阻止用户安装打印机驱动程序;

  2. 现在转到计算机配置 -> 策略 -> 管理模板 -> 系统 -> 驱动程序安装。在允许非管理员安装这些设备设置类的驱动程序参数中添加打印机设备类 GUID

    {4658ee7e-f050-11d1-b6bd-00c04fa372a7}

    {4d36e979-e325-11ce-bfc1-08002be10318}

    。这将只允许安装打印驱动程序;

  3. 导航至计算机配置 -> 策略 -> 管理模板 -> 打印机启用策略指向和打印限制。您需要在此处指定打印服务器列表(用户只能指向并打印到这些服务器),您可以从中安装打印驱动程序。对于剩下的两个选项,选择不显示警告或提升提示

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

  4. 将您信任的打印服务器列表添加到参数Package Point and print — Approvedservers

    [玩转系统] 使用 GPO 将打印机部署到域用户和计算机

  5. 现在是最重要的一点!!)。要允许在没有管理员权限的情况下安装打印机驱动程序(对于非管理员用户),您需要暂时将 RestrictDriverInstallationToAdministrators 注册表参数的值更改为 0

在独立计算机上,您可以使用以下命令更改此注册表参数:

reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" /v RestrictDriverInstallationToAdministrators /t REG_DWORD /d 0 /f

为了通过 GPO 更改用户计算机上的此注册表参数,您需要在计算机配置 -> 首选项 -> Windows 设置 -> 注册表下创建新的组策略首选项规则。使用以下设置创建注册表参数:

Action: Replace
Hive: HKEY_LOCAL_MACHINE
Key path: Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint
Value name: RestrictDriverInstallationToAdministrators
Type: REG_DWORD
Value: 0

[玩转系统] 使用 GPO 将打印机部署到域用户和计算机

Microsoft 安全基准中的新管理模板 (ADMX) 文件包含此注册表参数的单独 GPO 选项。它称为“限制管理员安装打印机驱动程序”(计算机配置 -> 策略 -> 管理模板 -> 打印机)。

[玩转系统] 使用 GPO 将打印机部署到域用户和计算机

转到常用选项卡并启用选项不再应用时删除此项目

[玩转系统] 使用 GPO 将打印机部署到域用户和计算机

现在更新客户端上的 GPO 设置(重新登录或运行

gpupdate /force

命令)并检查打印服务器的驱动程序现在是否已自动安装。 MsiInstaller 事件应出现在应用程序日志中:

EventID 1040
Beginning a Windows Installer transaction: C:\Windows\system32\spool\DRIVERS\x64\CIOUM64.MSI. Client Process Id: 7240.

[玩转系统] 使用 GPO 将打印机部署到域用户和计算机

此类 GPO 将允许任何非管理员用户从指定的打印服务器安装共享打印机和驱动程序,而无需提示提升或任何通知。

但 RestrictDriverInstallationToAdministrators 参数会使您的 Windows 容易受到 PrintNightmare 攻击。因此,我们建议在安装打印机后立即将其值恢复为 1。

https://support.microsoft.com/en-us/topic/kb5005652-manage-new-point-and-print-default-driver-installation-behavior-cve-2021-34481-873642bf-2634-49c5-a23b-6d8e9a302872

您可以在每个用户第一次登录时运行登录脚本(仅一次)

RestrictDriverInstallationToAdministrators = 1

。下次运行此脚本时,它会检查 RestrictDriverInstallationToAdministrators 的值,如果为 1,则将其更改为 0。这样,通过 GPO 分配给用户的所有打印机都将在首次登录时安装,并且 RestrictDriverInstallationToAdministrators 值将自动更改为安全状态。

请注意,只有签名的打印机驱动程序(Package-aware v3 打印驱动程序)才能以这种方式安装(在打印管理控制台的 Drivers 部分中使用 Packaged=True 值 -

printmanagement.msc

)。请参阅文章无法安装非软件包识别打印驱动程序。

[玩转系统] 使用 GPO 将打印机部署到域用户和计算机

如果您尝试通过 GPO 安装带有未签名驱动程序的打印机,尽管使用了 RestrictDriverInstallationToAdministrators 参数,但它不会被部署:

The user 'HP2500' preference item in the 'prnt_AutoConnect {GUID}' Group Policy Object did not apply because it failed with error code '0x80070bcb The specified printer driver was not found on the system and needs to be downloaded.' This error was suppressed.

以前,要安装和连接用户的打印机,我必须使用 .bat 和 PowerShell 脚本。这些脚本需要作为启动 GPO 脚本运行,并且组策略过滤可用于定位打印机安装。然而,使用 GPP 部署打印机要容易得多。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯