Где в Windows 7 хранится "предупреждающая" информация о.LNK? (И как убрать предупреждение)

У меня установлена ​​программа. Неважно, какой.

Если дважды щелкнуть исполняемый файл, он запускается без проблем.

Если я создаю ссылку на панели задач или в строке меню, при нажатии на ссылку открывается диалоговое окно с предупреждением: "Открыть файл - Предупреждение безопасности", в котором указано, что "хотя файлы из Интернета могут быть полезны, этот тип файлов может потенциально нанести вред вашему компьютеру".,

Я знаю, что могу избавиться от предупреждения, но я не хочу снимать защиту со всех ссылок. Только из этого, и я хочу предоставить UAC доступ, когда я это сделаю. После этого ссылка должна быть проверена и открыта без лишних слов.

Если я создаю ссылку на рабочем столе, а затем копирую ее в строке меню, а затем перемещаю ссылку в той же строке меню, я получаю две ссылки в одной строке меню.

Первый открывает диалог. Второго нет: он напрямую открывает приложение.

В этот момент мне стало любопытно: в чем разница между двумя файлами?

  • имя файла: нет
  • содержимое файла: нет. У них одинаковый хэш MD5.
  • Атрибуты: нет радости, они имеют одинаковые атрибуты.
  • возможно, альтернативный поток данных? Могло быть - но нет. Ни к одному из файлов.LNK не прикреплено ADS.
  • в реестре? Не имеет особого смысла, но опять же, похоже, в реестре ничего нет на этот счет.
  • Метаданные MFT? Я пытался использовать этот инструмент и, возможно, допустил некоторую ошибку, но я не нашел ничего очевидного (я не слишком уверен, что не было, заметьте).

Я попытался заглянуть в метаданные $MFT и обнаружил разницу, значение которой я не знаю, между полями "Общая информация" этих двух файлов. NTFS Explorer сообщает, что разделы идентичны; на самом деле это не так. После полей даты и атрибутов DOS есть две различные шестнадцатеричные последовательности:

File1
00 00 00 00 88 03 00 00 00 00 00 00 00 00 00 00 
10 45 41 22 00 00 00 00

File2
00 00 00 00 A6 03 00 00 00 00 00 00 00 00 00 00 
18 44 41 22 00 00 00 00

Если бы разница составляла всего один бит, я был бы уверен, но это не так. Я не слишком оптимистичен относительно случайного изменения $MFT, чтобы посмотреть, что произойдет - я немного боюсь того, что может произойти. И, кроме того, мне кажется глупым, что не является необоснованной операцией (" удалите предупреждение из этой ссылки здесь "), для которой даже существует обходной путь easyiy found (" создайте ссылку на рабочем столе и переместитесь оттуда туда, где она действительно есть"). надо идти ") должно быть так сложно и даже нужен сторонний инструмент.

Я ожидаю, что должен быть какой-то комплектный инструмент или процедура для того же эффекта, чтобы можно было редактировать этот загадочный и неуловимый флаг "Интернет-предупреждение".

Так где это хранится? И есть ли простой способ его удаления (в следующий раз)?

1 ответ

Решение

Информация фактически находилась в зоне DACL и может быть отредактирована из командной строки с помощью соответствующего инструмента.

Это удаляет предупреждение из "filename.lnk" (должно быть запущено из командной оболочки, я использую CMD для старых времен):

ICACLS filename.lnk /SetIntegrityLevel M /L

Целое дерево каталогов ссылок может быть обработано с помощью

ICACLS *.lnk /T /L /SetIntegrityLevel M

побежал из корневой папки.

Я думаю, что было бы возможно создать операцию оболочки ("Разблокировать"), которая могла бы запустить команду ICACLS при щелчке правой кнопкой мыши по файлу.LNK. Начальное руководство можно найти здесь (Vista, но Seven не должен быть слишком другим).

Создать команду меню "Разблокировать"

  1. открыто REGEDIT полезность. Применяются обычные меры предосторожности. REGEDIT может разрушить вашу систему!
  2. Открой HKEY_CLASSES_ROOT улей.
  3. Найдите lnkfile запись.
  4. Щелкните правой кнопкой мыши по lnkfile и выберите "Создать> Ключ".
  5. Создайте новый ключ с именем "shell".
  6. Повторите описанные выше шаги, чтобы создать ключ "Unblock" внутри "shell".
  7. Повторите выше, чтобы создать "команду" внутри "Разблокировать"
  8. Измените значение по умолчанию для ключа разблокировки, чтобы он читал

    CMD.EXE /S /C "ICACLS %1 /L /SetIntegrityLevel med"
    

близко REGEDIT,

Теперь найдите LNK, который доставлял вам неприятности. Щелкните по нему правой кнопкой мыши; Вы должны увидеть запись "Разблокировать" в меню. Выберите это.

Появляется приглашение UAC, с которым необходимо согласиться, и может также появиться предупреждение, проверяющее, действительно ли вы это делаете.

Теперь, если дважды щелкнуть ссылку, приложение будет запущено без каких-либо проблем. Если у вас было предупреждение UAC, а не предупреждение об открытии файла, описанной выше процедуры недостаточно. Вам также необходимо щелкнуть правой кнопкой мыши ссылку и в ее свойствах выбрать "Запуск от имени администратора" (возможно, вам придется сделать то же самое с самим приложением).

Протестировано и работает на Windows 7 Pro и Ultimate.

Другие вопросы по тегам