永久删除 Microsoft XPS Document Writer 伪打印机对象?

ele*_*n81 6 windows-xp xml

由于未知的原因,我管理的许多(Windows XP SP3)计算机最近开始创建一个新的伪打印机对象,称为Microsoft XPS Document Writer,似乎无处不在。

这是一个问题,因为对于某些用户(通过 ZENworks 通过动态本地用户创建),XPS 文档编写器被设置为默认打印机!

当我为这些机器制作图像时,我确保从打印机和传真区域中删除了这个伪打印机对象。我首先想知道是什么导致它在一年多之后最近重新创建。

找到了一个工具来删除伪打印机对象、它的驱动程序和其他一些相关的东西。问题是,它只是一个 GUI 应用程序,需要用户交互。

我会喜欢这样的实用程序,它只删除伪打印机对象、驱动程序等,无需用户交互,因此可以从登录脚本运行。

否则,我需要确切地知道如何手动执行 XPS 删除工具执行的每个步骤,然后编写它们的脚本。啊!

任何帮助将不胜感激!

Ste*_*pel 6

由于未知的原因,我管理的许多(Windows XP SP3)计算机最近开始创建一个新的伪打印机对象,称为 Microsoft XPS 文档编写器,似乎无处不在。

如果我正确阅读了 XPS Document Writer 的原始版本以及作为 .NET Framework 3.0 的一部分提供的 Windows XP 相关组件,请参阅查看和创建 XPS 文档示例。因此,我认为这些组件确实出现在这些系统上的原因是 .NET Framework 3.0 的显式或隐式安装,例如由依赖于它的另一个软件触发。

我会喜欢这样的实用程序,它只删除伪打印机对象、驱动程序等,无需用户交互,因此可以从登录脚本运行。

据推测,此安装基于Windows Installer,其设计为系统管理员提供了适当的卸载功能,即使最终用户没有明确的添加/删除程序条目,请参阅标准安装程序命令行选项(如果msiexec /?在命令行上执行),例如:

msiexec /uninstall /quiet YourInstallationPackage.msi
msiexec /uninstall /quiet {12345678-1234-1234-1234-123456789012}
Run Code Online (Sandbox Code Playgroud)

因此,有一些限制

  • 当然,要卸载的功能首先必须作为 Windows 安装程序包 (.msi) 提供,即使此程序包又被捆绑/打包在另一个实体中,例如 .NET Framework 安装程序;情况可能不一定如此,即使如果不是这样我会感到惊讶。
  • 如图所示,您要么需要访问原始安装包 (.msi),该包通常出于此类目的缓存在系统上,要么您需要ProductCode系统范围的 Windows Installer 中记录的所谓的包数据库。

这就是事情对您的例子棘手的(和潜在的危险),因为你需要找到这些系统上的任何一个:
Windows Installer高速缓存通常位于C:\Windows\InstallerWindows安装程序产品代码下注册HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall。显然,您首先需要一些术语来查找(例如“XPS”),并且对于每个查找,您一定要验证它是否确实表示您正在寻找的包,否则您最终可能会意外删除重要的内容。


替代方法:

显然,Microsoft XML Paper Specification Essentials Pack是对通过 .NET Framework 3.0 提供的那些位的更新(请参阅本文)。鉴于这是一个官方的 Windows 安装程序包,上面概述的卸载肯定可以工作。我通过 进入了该软件包Orca,毫不奇怪,它似乎包含用于卸载旧组件(如果存在)的自定义操作。因此,您可以先安装这个包,这意味着删除通过 .NET Framework 安装的位,然后立即再次卸载它以完全摆脱 XPS 功能:

msiexec /install /quiet 'XPSEP XP and Server 2003 32 bit.msi'
msiexec /uninstall /quiet 'XPSEP XP and Server 2003 32 bit.msi'
Run Code Online (Sandbox Code Playgroud)

首先安装更多东西似乎很奇怪,它可能会也可能不会起作用,但最终它可能更简单,因此值得一试。