我知道我们可以在启动 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
我回答了我自己的问题。
- 此示例 Powershell 脚本禁用 IE v9 中的“Adobe PDF Link Helper”扩展。
- 启动 IE,然后等待它关闭....
- 然后重新启用相同的扩展。
您可以在不使用 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 将“使能够“此扩展,但这可能是 Adobe 扩展使用的值,并且可能与另一个扩展不同。我曾看到 40,580 作为“Flags”DWORD 的值。
Set-Itemproperty . Flags -Value 400