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

PowerShell для Windows 7: Set-ExecutionPolicy для обычных пользователей

Я хочу запускать сценарии 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 как администратор, но это, похоже, не распространяется на пользователей, не являющихся администраторами.

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

4b9b3361

Ответ 1

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

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

Ответ 2

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

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

Ответ 3

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

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser