Как подписать пакет Windows (.bat файл)?

Я запускаю Windows 7, и когда я пытаюсь запустить пакетный файл, он говорит: "издатель не может быть проверен. Вы уверены, что хотите запустить эту программу?"

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

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

screenshot

24
задан techturtle
05.11.2022 5:06 Количество просмотров материала 3014
Распечатать страницу

3 ответа

Я получаю аналогичное сообщение, если запускаю пакетные файлы (или другие исполняемые файлы) из сетевого расположения. В этом случае можно переместить его на локальный диск. Другой альтернативой является использование отдельного пакетного файла на локальном диске для запуска в сети. Запуск пакетного файла должен содержать только одну строку:

@call \network\folder\batch.bat

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

3
отвечен techturtle 2022-11-06 12:54

вы не подписываете пакетные файлы. Похоже, ваш пакетный файл вызывает что-то другое, что должно быть подписано.

изменить: теперь, когда вы опубликовали пакетный файл, мы видим, что это из-за сетевого расположения. Или, иногда это произойдет, если вы просто скопировать файл из сети. В последнем случае это потому, что Windows пометила файл через альтернативный поток данных, чтобы быть в какой-то другой зоне Интернета. Вы можете обойти это одним из двух способов:

  1. изменение зон безопасности в Internet Explorer для зоны интрасети.
  2. используйте команду type, чтобы уничтожить альтернативный поток данных для файла. (Есть также ручьи.exe из Sysinternals, которые могут это сделать.) type thefile.bat > %temp%\newfile.bat & type %temp%\newfile.bat > thefile.bat
4
отвечен Mark Allen 2022-11-06 15:11

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

Что вы можете сделать, это удалить флаг из файла с помощью the разблокировать кнопка в свойствах файла, после чего, Windows оставит вас в покое всякий раз, когда вы пытаетесь запустить его:

enter image description here


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

поэтому подписание пакетного файла не будет работать.

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

также проверьте содержимое пакетного файла, чтобы увидеть, если он работает исполняемый файл, который не подписан (хотя опять же, по умолчанию, Windows не запрашивает исполняемые файлы, если он не был загружен или требует повышенных привилегий, так что проверьте настройки).

3
отвечен Synetech 2022-11-06 17:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх