3

Мне нужна помощь по настройке значения реестра для powershell. Путь

[hkey_local_machine\system32\windows\microsoft\powershell\1\shellids\microsoft.powershell] "Path" = "c:\windows\system32\windowspowershell\v1.0\powershell.exe" "ExecutionPolicy" = "неограниченно"

Так как я импортировал это из заведомо исправной машины, при запуске файла .reg он работает нормально. Но я хотел бы это в пакетном файле.

Когда я вручную вызываю командную строку, перетаскиваю путь, например, c:\powershell.reg , это импортирует значения и перезаписывает параметры реестра по мере необходимости.
Однако, если я вызываю то же самое в пакетном файле, значения не изменяются в реестре. При использовании команды reg add в пакетном файле значения не работают.

2 ответа2

7

Почему бы просто не запустить следующее через CMD

powershell -command "& {Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force}"

или это прямо в Powershell (для этого и нужна команда):

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force
1

Как изменить политику выполнения Powershell в режиме без вывода сообщений из пакетного сценария?

Предупреждение:

Приведенные ниже инструкции содержат шаги, которые говорят вам, как изменить реестр. Однако при неправильном изменении реестра могут возникнуть серьезные проблемы.

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

Для получения дополнительной информации см. Как выполнить резервное копирование и восстановление реестра в Windows.


reg решение

@echo off
reg add HKLM\system32\windows\microsoft\powershell\1\shellids\microsoft.powershell /v "Path" /d "c:\windows\system32\windowspowershell\v1.0\powershell.exe"
reg add HKLM\system32\windows\microsoft\powershell\1\shellids\microsoft.powershell /v "ExecutionPolicy" /d "unrestricted"

regedit Solution

@echo off
regedit /s file.reg

Где file.reg содержит следующее:

[hkey_local_machine\system32\windows\microsoft\powershell\1\shellids\microsoft.powershell] 
"Path"="c:\windows\system32\windowspowershell\v1.0\powershell.exe"
"ExecutionPolicy"="unrestricted"

Замечания:

  • [/s|-s]

    Когда имя файла указано в командной строке, этот переключатель используется для подавления любых информационных диалоговых окон, которые обычно отображаются. Это полезно, когда программа установки для приложения хочет выполнить REGEDIT.EXE с помощью.REG-файл, но не хочет, чтобы пользователь был сбит с толку никакими отображаемыми диалоговыми окнами.


дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • reg - Чтение, установка или удаление ключей и значений реестра, сохранение и восстановление из.REG-файл
  • regedit - импорт, экспорт или удаление настроек реестра из текста (.REG) файл.
  • regedit - Командная строка.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .