PowerShell в Windows 7: Set-ExecutionPolicy для обычных пользователей - PullRequest
57 голосов
/ 10 января 2011

Я хочу запускать скрипты PowerShell в Windows 7 как обычный пользователь.Всякий раз, когда я пытаюсь, я получаю следующую ошибку:

File C:\Users\danv\Documents\WindowsPowerShell\profile.ps1 cannot be loaded because the
execution of scripts is disabled on this system. Please see "get-help about_signing" for
more details.
At line:1 char:2
+ . <<<<  'C:\Users\danv\Documents\WindowsPowerShell\profile.ps1'
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException

Попытка решить с помощью Set-ExecutionPolicy Unrestricted не удается:

PS C:\Users\danv> Set-ExecutionPolicy Unrestricted
Set-ExecutionPolicy : Access to the registry key
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell'
is denied.
At line:1 char:20
+ Set-ExecutionPolicy <<<<  Unrestricted
    + CategoryInfo          : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
    + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand

Я могу запустить команду Set-ExecutionPolicy Unrestricted как администратор, ноне распространяется на пользователей без прав администратора.

Как я могу успешно запускать сценарии как не администратор?

Ответы [ 3 ]

107 голосов
/ 19 января 2011
Set-ExecutionPolicy Unrestricted -Scope CurrentUser

Это установит политику выполнения для текущего пользователя (хранится в HKEY_CURRENT_USER), а не на локальном компьютере (HKEY_LOCAL_MACHINE).Это полезно, если у вас нет административного контроля над компьютером.

61 голосов
/ 10 января 2011

Если вы (или полезный администратор) запускаете Set-ExecutionPolicy от имени администратора, политика будет установлена ​​для всех пользователей.(Я бы предложил «remoteSigned» вместо «unrestricted» в качестве меры безопасности.)

Примечание: на 64-битной ОС вам нужно запустить Set-ExecutionPolicy для 32-битной и 64-битной PowerShell отдельно.

0 голосов
/ 30 июня 2016

Это должно решить вашу проблему, попробуйте выполнить следующее:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...