Подтвердить что ты не робот

Игнорировать "Предупреждение о безопасности", выполняющее script из командной строки

Я пытаюсь выполнить script из общей папки, которой я доверяю:

PowerShell -file "\\server\scripts\my.ps1"

Но я получаю предупреждение о безопасности и должен нажать "R", чтобы продолжить

Предупреждение о безопасности. Запустите только скрипты, которые вы доверяете. Хотя скрипты из Интернет может быть полезен, этот scriptможет нанести вред вашему компьютеру. Делать вы хотите запустить \ Server\Scripts\my.ps1? [D] Не запустить [R] Запустить один раз [S] Приостановить [?] Справка (по умолчанию "D" ): d

Могу ли я игнорировать это предупреждение? Желаемый псевдокод я хочу:

PowerShell -IGNORE_SECURITY_WARNING -file "\\server\scripts\my.ps1"
4b9b3361

Ответ 1

Это коснулось "Политики исполнения PowerShell в стандартных изображениях" в блоге Lee Holmes и "Принципы обеспечения безопасности PowerShells" в блоге Power Power Windows.

Резюме Некоторые машины рассматривают UNC-пути как большой плохой интернет, поэтому PowerShell рассматривает их как удаленные файлы. Вы можете отключить эту функцию на этих серверах (UncAsIntranet = 0,) или добавить удаленные компьютеры на свои надежные хосты.

Если вы не хотите этого делать, PowerShell v2 поддерживает параметр -ExecutionPolicy, который точно соответствует вашему псевдокоду. PowerShell -ExecutionPolicy Bypass -File (...).

Ответ 2

Чтобы избежать предупреждений, вы можете:

Set-ExecutionPolicy bypass

Ответ 3

Если вы используете эту ошибку из загруженной powershell script, вы можете разблокировать script следующим образом:

  • Щелкните правой кнопкой мыши на файле .ps1 и выберите Свойства

  • Нажмите Разблокировать в свойствах файла

    enter image description here

  • Нажмите ОК

Ответ 4

Просто присвойте 1 переменной env SEE_MASK_NOZONECHECKS

$env:SEE_MASK_NOZONECHECKS = 1
Start-Process $msi_file_path /qn -Wait | out-null

Ответ 5

Попробуйте это, отредактируйте файл с помощью

notepad foo.ps1:Zone.Identifier

И установите 'ZoneId = 0'

Ответ 6

Вы хотите установить политику выполнения на своем компьютере с помощью Set-ExecutionPolicy:

Set-ExecutionPolicy Unrestricted

Вы можете изучить различные политики выполнения, чтобы узнать, какой из них подходит вам. Взгляните на "help about_signing" для получения дополнительной информации.

Ответ 7

Ничего из этого не было в моем конкретном случае. Что изменилось на имя NetBIOS из полного доменного имени.

Вместо:
  \\server.domain.net\file.ps1
Использование:
\\server\file.ps1

Использование имени обходит конфигурацию "автоматически определять сеть интрасети" в IE.

См. Вариант 1 в блоге: http://setspn.blogspot.com/2011/05/running-powershell-scripts-from-unc.html

Ответ 8

Я сделал эту powershell script, чтобы разблокировать все файлы на общем ресурсе на моем сервере

Get-ChildItem "\\ServerName\e$\MyDirectory\" -Recurse -File | % {
       Unblock-File -Path $_.FullName
}

Ответ 9

Вы загрузили script из Интернета?

Затем удалите поток NTFS из файла, используя sysinternal streams.exe в командной строке.

cmd> streams.exe .\my.ps1

Теперь попробуйте снова запустить script.

Ответ 10

Предположим, что вам нужно запустить ps script из общей папки

copy \\\server\script.ps1 c:\tmp.ps1 /y && PowerShell.exe -ExecutionPolicy Bypass -File c:\tmp.ps1 && del /f c:\tmp.ps1

P.S. Сократить поиск в Интернете)

Ответ 11

Это очень просто сделать, откройте PowerShell и напишите следующую команду, если у вас есть количество файлов ps1. Здесь вы должны изменить путь с вашим путем.

PS C:\Users> Get-ChildItem -Path "D:\downlod" -Recurse | Unblock-File

Ответ 12

Попробуйте установить переключатель политики выполнения "Policyname" -force, и всплывающие окна с предупреждениями не должны появляться.