我有一张很大的 Excel 表,其中包含大量指向 PDF 文件的本地文件超链接。这些链接经常被点击,每次都会弹出警告:
打开 <path\to\file.pdf>
有些文件可能含有病毒或对您的计算机造成危害。确保该文件来自可靠来源非常重要。
您想打开这个文件吗?
这个对话框非常烦人;有办法禁用它吗?
我尝试过的(都无济于事):
在注册表中,添加
DisableHyperlinkWarning REG_DWORD 0x00000001
。我已在以下键下尝试过:Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Common
Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Common\Security
Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common
Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Common\Security
在注册表中,通过 启用受信任的协议
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\xx.0\Common\Security\Trusted Protocols\All Applications
。“Microsoft”下不存在“Office”项。在注册表中,转到
Computer\HKEY_CLASSES_ROOT\.pdf
,然后添加项EditFlags REG_DWORD 0x00010000
Windows 开始按钮 ➔ Internet 选项 ➔ 安全 ➔ 受信任的站点。无法添加
file://
本地文件夹的链接。Excel ➔ Excel 选项 ➔ 信任中心 ➔ 受信任位置。在用户位置下添加文件夹,重新启动 Excel,警告仍然弹出。
Excel 版本:“Microsoft Excel for Office 365 MSO (16.0.12527.21378) 64 位”
答案1
.pdf 文件可能含有带区域标识符的备用日期流。要检查,请打开电源外壳包含文件的目录中的窗口,然后复制并粘贴此命令:
(Get-Item *.pdf -Stream 'Zone.Identifier' -ea silent).FileName
如果该命令返回文件名,则它们具有 ADS 区域标识符。
如果你想从文件中删除它们:
Get-Item *.pdf -Stream 'Zone.Identifier' -ea silent | ForEach {
Unblock-File -LiteralPath $_.FileName }
有关 ADS/区域标识符的更多信息
如果你好奇的话,普通用户最有可能找到带有 ADS 的文件的地方是你的下载目录(Windows 在下载过程中添加区域标识符)。您可以通过从您的下载目录:
Get-Item * -Stream 'Zone.Identifier' -ea silent | ForEach{
[PSCustomObject]@{
'Name' = ( Split-Path $_.FileName -Leaf )
'ZoneID' = ( Get-Content -LiteralPath $_.PSPath -Raw )
}} | Out-GridView
此外,有些.url
文件(桌面上的文件?)有一个封装文件的 ADS .ico
。如果.url
您的桌面上有快捷方式,请尝试从桌面目录:
gci *.url | Where { (gi $_ -Stream *).Count -gt 1 } | ForEach{ (gi $_ -Stream *).PSChildName }
输出:
PS C:\...\Desktop>gci *.url | Where { (gi $_ -Stream *).Count -gt 1 } | ForEach{ (gi $_ -Stream *).PSChildName }
CTA Bus Tracker.url::$DATA
CTA Bus Tracker.url:favicon
Morning Joe - Joe Scarborough, Mika Brzezinski, & Willie Geist.url::$DATA
Morning Joe - Joe Scarborough, Mika Brzezinski, & Willie Geist.url:favicon
Technet forums.url::$DATA
Technet forums.url:favicon
PS C:\...\Desktop>
如果要提取图标:
gi *.url -Stream favicon -ea silent | ForEach {
$Splat = @{
'LiteralPath' = "$($_.FileName).ico"
'Value' = Get-Content -Literal $_.PSPath -Raw -Encoding Byte
'Encoding' = 'Byte'
'FOrce' = $True
}
Set-Content @Splat
}
要使用 ADS 搜索文件夹及其子文件夹中的任何文件:
Get-CHildItem -Directory -Recurse | ForEach {
If ( ( $ADS = Get-Item "$($_.FullName)\*" -Stream * | ? Stream -ne ':$DATA' ).Count -ne 0 ) {
$ADS | ForEach { Get-Item -Literal $_.FIleName }
}
}
答案2
Office 365 中的“插入超链接”对话框看起来像是 Windows XP 中的僵尸。如果您在该对话框中单击“浏览网页”按钮,令人惊讶的是,Internet Explorer 会打开。这让我想到 Office 中的所有超链接可能都是通过 Internet Explorer 的 dll 路由的,因此它可能与您的 Explorer 相关安全设置有关。事实上,Office 365 使用信息栏而不是弹出窗口来显示安全警告,这让我认为您的弹出窗口实际上是从 Internet Explorer 继承而来的。
我无法复制您的问题,但这些步骤可能会为您(或其他人)指明正确的方向。
打开控制面板。单击“网络和 Internet”->“Internet 选项”。
在打开的“Internet 属性”窗口中,转到“安全”选项卡。在“本地 Intranet”和“受信任的站点”上,将“此区域的安全级别”设置为“低”。此外,如果已选中“启用保护模式”,请取消勾选。