Windows Server 2008を管理者として実行していて、次のようにPowerShell v2のExecutionPolicyをRemotesignedに設定しようとしました。
Set-ExecutionPolicy RemoteSigned
しかし、私はこのエラーを受け取りました:
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 <<<< RemoteSigned
+ CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyComma
nd
これを修正するには?
Powershellショートカットを右クリックし、「管理者として実行」を選択します
StackOverflowの 同じ質問 に答えたStephen Jennings:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
これにより、ローカルマシン(HKEY_LOCAL_MACHINE)ではなく、現在のユーザー(HKEY_CURRENT_USERに格納されている)の実行ポリシーが設定されます。
「管理者として実行」が機能しない場合(最初は私には適していませんでした)、または永続的な解決策が必要な場合は、Windowsレジストリに直接アクセス許可を追加することで解決策を見つけました。これを行った後、get-ExecutionPolicyを呼び出したときに、制限が解除されなくなりました。
これはset-ExecutionPolicy RemoteSignedに相当し、実際に機能します。
それについてここに書いてください: http://kyleclegg.com/powershell/
お役に立てれば。
このエラーの唯一の解決策は、regedt32を実行してキーにドリルダウンし、ユーザーのアクセス許可を読み取りからフルコントロールに変更することでした。サーバーのローカル権限は、ドメイン管理者権限よりも優先されます。