在 IE 启动时使用 Powershell 禁用 IE 9 插件,然后在 IE 退出时启用

在 IE 启动时使用 Powershell 禁用 IE 9 插件,然后在 IE 退出时启用

我知道我们可以在启动 IE 时使用“-extoff”开关禁用所有插件/扩展程序。但是,是否可以通过快捷方式启动或脚本禁用单个 IE 插件?然后重新启用插件/扩展程序?我遇到的问题是,我们使用一个 Web 应用程序,它使用一个插件,但我们有几台计算机有另一个插件/扩展程序,它们希望保持启用状态,但它们有时会互相干扰。它们不能同时使用。

基本上,

  • 将在 IE 中禁用单个特定插件的脚本。

    ... 运行 IE ... 退出 IE ...

  • 将在 IE 中启用该单个特定插件的脚本。

编辑1:

我创建了一个 powershell 脚本:

$regpath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{D27CDB6E-AE6D-11CF-96B8-444553540000}"
if(!(Test-Path -LiteralPath $regpath))
  {
   echo "NOPE. RegPath is not there!"
  }
else
  {
   echo "RegPath is there! Lets change it..."
   Set-ItemProperty -Path $regpath -Name Flags -Value 0
   # Note: 0 is for enable and 1 is for disable.

   #start IE and then wait until its finished and then set addon back on
   echo "Starting IE..."
   C:\Progra~1\Intern~1\iexplore.exe | out-null
   echo "IE Exited. "
   Set-ItemProperty -Path $regpath -Name Flags -Value 1
  }

此脚本在我的工作站上运行良好,注册表项已更改……但 IE 启动时仍运行该插件。那么我遗漏了什么?我尝试在 IE 启动时进入休眠状态,但不行。我是否将注册表项设置在了错误的位置?为什么 IE 看​​不到注册表更改?如果我手动更改注册表项,IE 会看到更改,但使用 powershell 时看不到。在启动 IE 之前,我必须更新注册表吗?保存?

答案1

我回答了我自己的问题。

  1. 此示例 Powershell 脚本禁用 IE v9 中的“Adobe PDF Link Helper”扩展。
  2. 启动 IE,然后等待它关闭....
  3. 然后重新启用相同的扩展。

您可以在不使用 Powershell 脚本的情况下启动 IE,扩展程序将处于打开状态。使用脚本禁用特定扩展程序并运行 IE。

您需要扩展的“类 ID”并将注册表修改为该特定扩展。

  • 名称:Adobe PDF Link Helper
  • 出版商:Adobe Systems, Incorporated
  • 类型:浏览器辅助对象
  • 架构:32 位
  • 版本:9.5.5.316
  • 文件日期:2013 年 5 月 8 日星期三上午 5:58
  • 上次访问日期:今天,2014 年 3 月 15 日,下午 5:34
  • 班级号: {18DF081C-E8AD-4283-A596-FA578C2EBDC3}
  • 使用次数:252
  • 区块数:104
  • 文件:AcroIEHelperShim.dll
  • 文件夹:C:\Program Files (x86)\Common Files\Adobe\Acrobat\ActiveX

在此处输入图片描述

Powershell 代码:

# Adobe PDF Link Helper Registry Path (with CLASS ID)
$RegPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Ext\Settings\{18DF081C-E8AD-4283-A596-FA578C2EBDC3}"
if(test-path $RegPAth)
{
    #CD $RegPath
    Set-Location $regpath
    echo "Disabling IE Ext... and Starting IE...will wait."
    Set-Itemproperty . Flags -Value 1

    Start-Process "$env:ProgramFiles\Internet Explorer\iexplore.exe" -wait # -ArgumentList -extoff

    echo "IE Done... will Enable Ext now..."

    Set-Itemproperty . Flags -Value 400
    echo "Enabled IE Ext."
}

笔记: 将“值”设置为 1 将“禁用“扩展:

Set-Itemproperty . Flags -Value 1

将“值”设置为 0 应该“使能够“扩展,但是当我将值设置为 1 时,出现了奇怪的结果:

Set-Itemproperty . Flags -Value 0

将“值”设置为 400 将“使能够“此扩展,但这可能是 Adob​​e 扩展使用的值,并且可能与另一个扩展不同。我曾看到 40,580 作为“Flags”DWORD 的值。

Set-Itemproperty . Flags -Value 400

相关内容