Файл не имеет цифровой подписи
Обновлено: 21.11.2024
При попытке запустить сценарий PowerShell, не подписанный доверенным издателем, может появиться следующая ошибка безопасности:
"script.ps1: путь к файлу\script.ps1 не может быть загружен. Файл path\script.ps1 не имеет цифровой подписи. Вы не можете запустить этот сценарий в текущей системе».
Эта ошибка безопасности может возникнуть, если для политики выполнения PowerShell установлено значение Allsigned или Remotesigned, а сценарий не подписан.
Политика выполнения Allsigned разрешает выполнение всех подписанных сценариев Powershell. Перед выполнением скрипта вам будет предложено подтвердить, что вы доверяете издателю, подписавшему скрипт.
Политика удаленного выполнения ограничивает выполнение загруженных неподписанных скриптов. Сценарии, выполняемые с локального компьютера, не нужно подписывать.
Решение
Существуют различные способы устранения этой ошибки. Вы можете подписать сценарий PowerShell, изменить политику выполнения, обойти политику или разблокировать файл, чтобы он мог выполняться один раз в этом сеансе.
Проверить политику выполнения
Прежде всего проверьте свою политику выполнения с помощью командлета Get-ExecutionPolicy
Параметр списка в командлете Get-ExecutionPolicy указывает политику выполнения для каждой области.
По умолчанию для всех версий Windows, кроме Windows 2012 R2, используется политика выполнения Restricted. Политика выполнения по умолчанию в Windows 2012 R2 — RemoteSigned.
Постоянное изменение политики выполнения
Самый простой, но небезопасный способ избавиться от этого сообщения об ошибке — изменить ExecutionPolicy с помощью командлета SetExecutionPolicy. Следующая команда устанавливает неограниченную политику выполнения.
Нажмите Y, чтобы подтвердить изменение при появлении запроса. Изменение политики будет обновлено в реестре и останется до тех пор, пока вы не измените его снова.
Временное изменение политики выполнения
Вместо постоянного изменения политики выполнения вы можете установить другую политику для одного сеанса PowerShell. Это делается с помощью параметра ExecutionPolicy файла powershell.exe
Откройте командную строку или PowerShell и выполните команду:
Приведенная выше команда открывает сеанс PowerShell с политикой выполнения для этого сеанса, установленной на обход, что означает, что ничего не заблокировано.
Разблокировка загруженного файла
Если выбрана политика выполнения RemoteSigned, файлы, загружаемые из Интернета (или из электронной почты), блокируются, чтобы защитить запущенные небезопасные сценарии. Если вы уверены, что содержимое скрипта безопасно, вы можете разблокировать его для запуска в своем сеансе с помощью командлета Unblock-File
После того как вы навсегда или временно изменили политику выполнения для сеанса или определенного скрипта, вы можете продолжить выполнение скрипта, но перед этим убедитесь, что содержимое скрипта не нанесет вреда вашему компьютеру
Для решения различных проблем с ПК мы рекомендуем DriverFix:
Это программное обеспечение будет поддерживать работоспособность ваших драйверов, тем самым защищая вас от распространенных компьютерных ошибок и сбоев оборудования. Проверьте все свои драйверы прямо сейчас, выполнив 3 простых шага:
Если вы пытались запустить скрипт PowerShell, который не подписан, вы, вероятно, столкнулись со следующей ошибкой
не имеет цифровой подписи. Вы не можете запустить этот скрипт в текущей системе.
Windows PowerShell — это оболочка, изначально разработанная Microsoft для автоматизации задач и управления конфигурацией. Неудивительно, что для его политики выполнения установлено значение Restricted, что защищает от запуска вредоносных скриптов.
Однако эта ошибка безопасности может возникнуть, если для политики выполнения PowerShell задано значение AllSigned или RemoteSigned, а сценарий не подписан. Если вы хотите подписать скрипт и решить эту проблему, вот несколько способов, которые могут вам помочь.
Что делать, если PowerShell не имеет цифровой подписи?
1. Проверить и изменить политику выполнения
Давайте посмотрим, как проверить политику выполнения, а также как это можно использовать, чтобы избавиться от вашей ошибки. Прежде всего, вы можете запустить командлет Get-ExecutionPolicy, чтобы получить свою политику выполнения. Параметр списка в командлете Get-ExecutionPolicy указывает политику для каждой области.
На данном этапе удобным способом является изменение политики выполнения с помощью командлета SetExecutionPolicy. Следующая команда задает для политики выполнения значение Unrestricted: PS C:> Set-ExecutionPolicy unrestricted. Нажмите Y, чтобы подтвердить изменение при появлении запроса.
Изменение политики обновляется в реестре и остается таким, по крайней мере, до тех пор, пока вы не измените его снова. Обратите внимание, что Unrestricted означает загрузку абсолютно всех файлов конфигурации и запуск всех скриптов. Если вы запускаете неподписанный скрипт, загруженный из Интернета, перед его запуском у вас запрашивается разрешение.
2. Обход текущего сеанса PowerShell
Еще одно быстрое решение — запустить Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass. Эта простая команда выше установит политику выполнения для обхода текущего сеанса PowerShell.
Более того, после закрытия сеанса PowerShell эти настройки будут потеряны.
3. Разблокировать загруженный файл
Если для политики выполнения установлено значение RemoteSigned, это требует, чтобы все сценарии и файлы конфигурации, загружаемые из Интернета или по электронной почте, были подписаны доверенным издателем.
Если вы уверены, что содержимое скрипта безопасно, вы можете разблокировать его для запуска в вашем сеансе с помощью командлета Unblock-File: PS C:> Unblock-File -Path C:Downloadsscript1.ps1.
Если у вас есть какие-либо вопросы об этих исправлениях обнаруженной ошибки PowerShell, оставьте нам сообщение в разделе комментариев ниже. Мы сделаем все возможное, чтобы помочь вам.
ЧИТАТЬ ДАЛЬШЕ:
По-прежнему возникают проблемы? Исправьте их с помощью этого инструмента:
Вы хотите запустить загруженный скрипт PowerShell, но получаете сообщение об ошибке отсутствия цифровой подписи при запуске скрипта PowerShell и не можете продолжить работу. Сценарий загружается локально в вашу систему, и вы запускаете его от имени администратора. Другие созданные вами сценарии работают нормально, но этот загруженный сценарий не может быть загружен. В этой статье вы узнаете, почему вы получаете эту ошибку в первую очередь и как разрешить сценарий PowerShell без цифровой подписи.
Оглавление
Ошибка отсутствия цифровой подписи
Запустите PowerShell от имени администратора. Измените каталог на папку c:\scripts. Затем запустите загруженный сценарий PowerShell. Вы получаете сообщение об ошибке.
Как исправить ошибку отсутствия цифровой подписи?
Во-первых, начните с просмотра файла сценария Windows PowerShell. Найдя сценарий PowerShell, щелкните файл правой кнопкой мыши и выберите "Свойства".
Оставайтесь на вкладке "Общие", а внизу вы увидите параметр "Безопасность". Он показывает, что этот файл получен с другого компьютера и может быть заблокирован в целях защиты этого компьютера. Другими словами, вы не можете запустить скрипт из соображений безопасности. Вы должны доверять ему, прежде чем сможете его использовать.
Установите флажок Разблокировать и нажмите OK.
Теперь перезапустите сценарий PowerShell. Он должен работать так, как ожидалось, без ошибок. Например, сценарий не может быть загружен и что сценарий не имеет цифровой подписи.
Исправить ошибку отсутствия цифровой подписи с помощью PowerShell
Если вы хотите разблокировать файл с помощью PowerShell, используйте командлет Unblock-File. В этом примере мы меняем путь к папке со скриптами. После этого разблокируем скрипт и запускаем скрипт.
Заключение
Вы узнали, как исправить ошибку отсутствия цифровой подписи при запуске скрипта PowerShell. Разблокируйте файл через Проводник или PowerShell. Это небольшое исправление, но важное. Какой сценарий PowerShell вы хотели запустить и выдали эту ошибку? Нам нужно, чтобы наши сценарии PowerShell работали правильно!
Понравилась ли вам эта статья? Вам также может понравиться PowerShell для удаления кавычек из текстового файла. Не забудьте подписаться на нас и поделиться этой статьей.
АЛИ ТАДЖРАН
Что читают другие
Как переместить почтовый ящик журнала аудита в Exchange Server 2010/2013/2016/2019? Я рекомендую вам переехать…
Мы хотим получить размер почтового ящика всех пользователей в Exchange с помощью PowerShell. Но…
Ошибка PowerShell не имеет цифровой подписи часто возникает, когда пользователи запускают сценарии PowerShell. Обычно это происходит из-за значений, установленных для политики выполнения PowerShell.
В рамках наших услуг по управлению сервером мы помогаем нашим клиентам регулярно исправлять ошибки, связанные с Windows.
Давайте сегодня обсудим возможные причины и способы устранения этой ошибки.
Что такое ошибка PowerShell без цифровой подписи?
При попытке запустить сценарий PowerShell, не подписанный доверенным издателем, пользователи часто видят ошибку безопасности "PowerShell не имеет цифровой подписи", как показано ниже:
Эта ошибка безопасности может возникнуть, если у нас есть политика выполнения PowerShell AllSigned или RemoteSigned.
Теперь давайте обсудим возможные способы исправления этой ошибки.
Как исправить ошибку PowerShell без цифровой подписи?
Есть несколько возможных способов исправить эту ошибку. Давайте рассмотрим каждый из них один за другим.
Проверить и изменить политику выполнения
Первым шагом здесь является проверка политики выполнения. Мы можем запустить командлет Get-ExecutionPolicy, чтобы получить политику выполнения. Параметр списка в командлете Get-ExecutionPolicy сообщает нам политику для каждой области.
После того, как мы получим представление о политиках выполнения, самый простой, но небезопасный способ избавиться от этого сообщения об ошибке — изменить ExecutionPolicy на неограниченный.
Кроме того, мы можем изменить политику выполнения с помощью командлета SetExecutionPolicy. Следующая команда задает для политики выполнения значение «Неограниченно»:
Нажмите Y, чтобы подтвердить изменение при появлении запроса.
Затем он обновляет изменение политики в реестре и остается таким, пока мы не изменим его снова
Пропустить текущий сеанс PowerShell
Чтобы временно изменить политику выполнения, мы можем использовать командлет Set-ExecutionPolicy с параметром ByPass.
Эта простая команда, приведенная выше, установит политику выполнения для обхода текущего сеанса PowerShell. Как только мы закроем этот сеанс PowerShell, он потеряет эти настройки.
Допустимые значения для параметра ExecutionPolicy
Ниже приведены сведения о допустимых значениях параметра -ExecutionPolicy:
- Запрещено. Не загружает файлы конфигурации и не запускает скрипты. Политика выполнения по умолчанию ограничена.
- Все подписи. Требуется, чтобы доверенный издатель подписал все сценарии и файлы конфигурации, включая сценарии, которые мы пишем на локальном компьютере.
- Удаленная подпись. Требуется, чтобы доверенный издатель подписал все сценарии и файлы конфигурации, загруженные из Интернета.
- Не ограничено. Загружает все файлы конфигурации и запускает все сценарии. Запрашивает разрешение, если мы запустим неподписанный скрипт, загруженный из Интернета.
- Обход. Ничего не блокирует, предупреждений и подсказок нет.
- Не определено. Удаляет текущую назначенную политику выполнения из текущей области. Этот параметр не удалит политику выполнения, установленную в области действия групповой политики.
Областью по умолчанию для команды Set-ExecutionPolicy является LocalMachine. Мы также можем указать область действия политики, добавив параметр -Scope. Например, некоторые из областей, которые мы можем установить, включают:
- Процесс: политика выполнения влияет только на текущий процесс PowerShell.
- CurrentUser: политика выполнения влияет только на текущего пользователя.
- LocalMachine: политика выполнения влияет на всех пользователей компьютера.
Кроме того, чтобы удалить политику выполнения из определенной области, установите для политики выполнения для этой области значение Не определено.
Разблокировать загруженный файл
Для политики RemoteSignedExecution подпишите все сценарии и файлы конфигурации, загруженные из Интернета или из сообщений электронной почты доверенным издателем.
Если мы уверены, что содержимое сценария безопасно, мы можем разблокировать его для запуска в сеансе с помощью командлета Unblock-File:
[Нужна дополнительная помощь, чтобы исправить ошибку Powershell без цифровой подписи? – Мы доступны 24*7]
Заключение
Короче говоря, ошибка безопасности PowerShell не имеет цифровой подписи может возникнуть, если для политики выполнения PowerShell задано значение AllSigned или RemoteSigned. Сегодня мы увидели, как наши инженеры службы поддержки исправили эту ошибку.
Похожие сообщения:
ЗАЩИТИТЕ ВАШ СЕРВЕР ОТ СБОЯ!
Никогда больше не теряйте клиентов из-за низкой скорости сервера! Позвольте нам помочь вам.
Наши специалисты по серверам будут контролировать и обслуживать ваш сервер круглосуточно и без выходных, чтобы он оставался молниеносно быстрым и безопасным.
Читайте также: