web-dev-qa-db-ja.com

Windows 7上のPowerShell:一般ユーザー向けのSet-ExecutionPolicy

Windows 7で通常のユーザーとしてPowerShellスクリプトを実行したい。試すたびに、次のエラーが表示されます。

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コマンドを管理者として実行できますが、これは管理者以外のユーザーに伝わらないようです。

非管理者としてスクリプトを正常に実行するにはどうすればよいですか?

58
Dan Vinton

あなた(または役に立つ管理者)がSet-ExecutionPolicyを管理者として実行する場合、ポリシーはすべてのユーザーに設定されます。 (安全対策として、「無制限」ではなく「remoteSigned」をお勧めします。)

注:64ビットOSでは、32ビットと64ビットのPowerShellに対して別々にSet-ExecutionPolicyを実行する必要があります。

62
Richard
Set-ExecutionPolicy Unrestricted -Scope CurrentUser

これにより、ローカルマシン(HKEY_LOCAL_MACHINE)ではなく、現在のユーザー(HKEY_CURRENT_USERに格納されている)の実行ポリシーが設定されます。これは、コンピューターを管理制御していない場合に便利です。

108

これで問題が解決するはずです。以下を実行してください。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 
0
John V Hobbs Jr