
У меня есть большая таблица Excel с множеством локальных файловых гиперссылок на файлы PDF. Эти ссылки часто нажимаются, и каждый раз появляется предупреждение:
Открытие <путь\к\файлу.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 ➔ Свойства обозревателя ➔ Безопасность ➔ Надежные сайты. Невозможно добавить
file://
ссылку на локальную папку.Excel ➔ Параметры Excel ➔ Центр управления безопасностью ➔ Надежные расположения. Добавил папку в Расположение пользователей, перезапустил Excel, предупреждение все равно появляется.
Версия Excel: «Microsoft Excel для Office 365 MSO (16.0.12527.21378) 64-разрядная версия»
решение1
Возможно, файлы .pdf имеют альтернативные потоки дат с идентификаторами зон. Чтобы проверить, откройтеPowerShellwindow в каталоге, содержащем файлы, затем скопируйте и вставьте эту команду:
(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 добавляет идентификатор зоны во время загрузки). Вы можете просмотреть информацию в ADS, запустив этот код из вашегоЗагрузкикаталог:
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 направляются через dll Internet Explorer, так что, возможно, что-то должно быть связано с настройками безопасности, связанными с Explorer. На самом деле, Office 365 использует информационную панель, а не всплывающие окна для предупреждений безопасности, это заставляет меня думать, что ваше всплывающее окно на самом деле унаследовано от Internet Explorer.
Мне не удалось воспроизвести вашу проблему, но эти шаги могут указать вам (или кому-то другому) правильное направление.
Откройте Панель управления. Нажмите «Сеть и Интернет» -> «Свойства обозревателя».
В открывшемся окне «Свойства обозревателя» перейдите на вкладку «Безопасность». И в «Местной интрасети», и в «Надежных узлах» установите «Уровень безопасности для этой зоны» на «Низкий». Также снимите галочку «Включить защищенный режим», если она установлена.
решение3
В реестре я нашел этот ключ:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\ProtocolDefaults
Значения для каждого протокола, скорее всего, являются идентификаторами зон — это объясняет, почему файлы без ADS по-прежнему ведут себя как Zone 3
файлы.
Пытаться:
- изменение значения записи
file
на0
(Computer
) или1
(Local Intranet
) - Перезапуск
- Тест