防止 Windows 10 安装 OneNote 打印机

防止 Windows 10 安装 OneNote 打印机

OneNote 打印机对我来说简直就是一场噩梦。我无数次从打印机中删除它。它总是会回来。有时作为默认打印机,有时作为常规打印机。我怎样才能一劳永逸地摆脱它?

我只发现这个七年前的答案,但它适用于 Office 2013 和 Windows 7。我有 Windows 10 和 Office 365。我已经打开了 GPO,但所有条目和菜单项与给出的答案完全不同。

答案1

在了解了你的技能水平@trejder 之后,我重写了这篇文章。


首先,简单无忧的方式。我不确定这些变化会持续多久。也许是永久的?

  1. 打开设备管理器
  2. 打开“打印队列”
  3. 一次一个地右键单击 OneNote 条目并选择“卸载设备”

现在,我们来看看“司机”的做法:

警告,不要大意。你正在和司机开玩笑

首先,我将简单介绍一下这一切是如何运作的。

  • 驱动程序作者编写了一个 inf 来安装他们的产品。在这个特定情况下,OneNote 安装程序会从C:\Program Files\Microsoft Office\root\Office16\OneNote\prnms006.inf
  • oemWindows 将此 inf 复制到 c:\windows\inf,并使用以唯一数字开头和结尾的名称对其进行重命名,例如oem25.inf
  • 还有一些内置驱动程序没有唯一的 inf 文件,但仍然是驱动程序树的一部分。(如下所示)。这种情况的例子可能是键盘或 USB 闪存驱动器。
  • 我们将使用pnputil命令来消除这一切。首先,我们将使用它来获取已安装内容的列表,然后我们将使用它来破坏这些条目。

让我们开始打扫房子吧!:)

您可以假设所有这些命令都来自提升的命令提示符。

  1. 转到C:\Program Files\Microsoft Office\root\Office16并将 OneNote 重命名为_OneNote_(这只是驱动程序,不是应用程序)。这是为了防止 Office 将来再次启动安装并生成新的 oemXXX.inf。当然,升级会将其恢复。:(
  2. 跑步pnputil /enum-drivers >%temp%\oem_drivers.txt
  3. 跑步pnputil /enum-devices >%temp%\drivers.txt
  4. 用您方便的文本编辑器打开 %temp%\oem_drivers.txt 并搜索prnms006.inf。记下与之耦合的 oemXX.inf 文件的名称。
  5. 打开 %temp%\drivers.txt 并搜索 OneNote。记下所有Instance ID字符串。

现在到了打击的时刻!!

  1. 运行,pnputil /delete-driver oemXXX.inf /uninstall其中(当然)oemXXX.inf 是你取下来的。
  2. 运行,pnputil /delete-driver oemXXX.inf /force其中(当然)oemXXX.inf 是您删除的。这可能会出错,但我们这样做是因为我第一次尝试删除驱动程序包时失败了。
  3. 对drivers.txt 中找到的pnputil /remove-device INSTANCE_ID_STRING_HERE每个 OneNote运行Instance ID

您应该已经清理干净。
对于这种驱动程序,您不需要重新启动。

此技术将强制卸载任何类型的 OEM 驱动程序(例如 realtek 或 HP thingamajiggers!)。

答案2

我注意到在另一个解决方案中,pnputil unstinall 1 步骤需要从:pnputil /delete-driver /uninstall oemXXX.inf 翻转为:pnputil /delete-driver oemXXX.inf /uninstall

我在编写 powershell 来帮助自动化 OneNote 打印机卸载程序时发现了这一点:



$officeFolder = Get-ChildItem -Path 'C:\Program Files\Microsoft Office\' -Filter Office* | Select-Object -ExpandProperty Name
$currentPath = 'C:\Program Files\Microsoft Office\'+$officeFolder+'\OneNote'
$newPath = 'C:\Program Files\Microsoft Office\'+$officeFolder+'\OneNoteOLD'
Rename-Item $currentPath $newPath


$drivers = pnputil /enum-drivers
$drivers -split '\r?\n' | select-string -Pattern "prnms006.inf" -Context 1,0 | % {
    $pubName =  $_.Context.PreContext[0]
    }
    $pubName


$regex = 'o\w*'

$oem = $pubName | select-string -Pattern $regex -AllMatches | % { $_.Matches } | % { $_.Value }
$oem = $oem+'.inf'

pnputil /delete-driver $oem /uninstall
pnputil /delete-driver $oem /force




$devices = pnputil /enum-devices
#take devices, split the lines with returns, match all lines with one note and include the line above 
$devices -split '\r?\n'  | select-string -Pattern "OneNote" -AllMatches -Context 1,0 | % { 

    #select 1 line above the match line
    $instId = $_.Context.PreContext[0]
    #clean up instance iD
    $instId = $instId.substring($a.length - 52, 52)
    #unstinall
    pnputil /remove-device $instId

}
    

相关内容