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