4

I'm building some servers and need to run some powershell scripts on them. However, I need to run the command Set-ExecutionPolicy -ExecutionPolicy remotesigned -Force manually on every server. Because I can't set execution policy in a script. I want to know where PowerShell save the execution policy setting and want to directly change it. Is that possible?

Thanks.

4

2 に答える 2

8

ExecutionPolicyは、単一の場所に保存される単一の設定ではありません。ExecutionPolicyには複数のスコープがあり、それぞれが異なる方法で設定および保存されます。実行Get-ExecutionPolicy -Listして、すべての異なるスコープを確認します。

ProcMonを使用して、さまざまなスコープを取得/設定するときに読み取られる/書き込まれるキーを監視して、次のリストを作成しました。

  • MachinePolicyUserPolicyは、グループポリシーを介してのみ設定できます。キーは下にあると思いますHKLM\Software\Policies\Microsoft\Windows\Powershell
  • プロセスがregキーに保存されていないようです。それは現在のプロセスのみを適用するので、それは理にかなっています。おそらくメモリに保存されているだけです。
  • CurrentUserはに保存されHKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell [ExecutionPolicy]ます。これは、特定のユーザー(つまり、現在のユーザー以外)に対して設定できます。HKEY_USERS
  • LocalMachineはに保存されます。HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell [ExecutionPolicy] これは、を実行するときのデフォルトのスコープですSet-ExecutionPolicy

http://technet.microsoft.com/en-US/library/dd347641.aspxおよびhttp://go.microsoft.com/fwlink/?LinkID=113394を参照してください。

于 2012-08-19T01:30:53.977 に答える
2

HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell キー名は ExecutionPolicy (型: REG_SZ) です。あなたの場合、値はRemoteSignedである必要があります。

于 2012-08-18T19:12:30.853 に答える