• 締切済み

powershell 実行ポリシー変更について

WindowsPowerShell2.0でスクリプトを動かそうとしましたが、エラーが起きました。 そこで、実行ポリシーをRestrictedからRemoteSignedへ変更しました。 しかし、同じようにエラーが起きています。 "管理者として実行する"でPowerShellは起動しています。 実行ポリシーを変更できない理由はほかにありますでしょうか? windows7を使用しております。 ご存じな方は教えていただけますでしょうか。

みんなの回答

  • maesen
  • ベストアンサー率81% (646/790)
回答No.3

>管理者で実行した場合でも、ウィンドウのタイトルはWindosws PowerShellのままでした。 >”ExecutionPolicyを編集ができません。値の内容を書き込み中に、エラーが発生しました。” このことから「管理者として実行する」で権限を昇格できないことに根本的な問題があるように思います。 今回はExecutionPolicyの設定で発覚しましたが、これ以外でも権限が必要な場合には同様の問題が出ると思います。 状況として考えられるものが浮かばないですが、 コマンドプロンプトなどもやはり管理者にならないのでしょうか。 >こちらはフルコントロールにチェックがついていたので問題ありません。 >わたしは「Administrators」権限のあるアカウントでログインしています。 Administrators権限がありAdministratorsフルコントロールになっていてもUACがある限り、「管理者として実行する」で昇格しなければ変更は出来ないですね。 管理者に昇格できなければ標準ユーザーと大差ない権限になりますので。 一時的にUACを無効にすることも考えられますが、そもそも管理者に昇格できない状態でUACの設定が変えられるのかという疑問があります。 あとはウィルス対策ソフトの影響というのも可能性としてありそうですが具体的には経験していません。

  • maesen
  • ベストアンサー率81% (646/790)
回答No.2

質問内容を勘違いしていたようです。 エラーの内容は「管理者として実行する」をしていなかった場合と同じ結果ですね。 しかし、「管理者として実行する」でPowerShellを起動しているはずだと。 確認でこれは大丈夫だと思いますが、開いたPowerShellのウィンドウのタイトルが「管理者:Windows PowerShell」であることを確認して下さい。 あとは、レジストリのアクセス許可ということになりそうに思います。 regedit.exeにて 「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell」のアクセス許可を確認してみて下さい。 通常ならば「Administrators」にフルコントロールが付いているはずです。 Set-ExecutionPolicyで変更されるレジストリの値は、上記のキーの下のExecutionPolicyになりますので、 このExecutionPolicyの内容を直接「RemoteSigned」に書き換えてもコマンドと同じことになります。 こちらを試してみるのもいいかもしれません。(元の原因がわからなくなっちゃうかもしれませんが) レジストリを変更するときは注意して下さい。 また、regedit.exeも「管理者として実行する」で起動します。

astyhkato
質問者

補足

ご回答ありがとうございます。 管理者で実行した場合でも、 ウィンドウのタイトルはWindosws PowerShellのままでした。 管理者で実行できていませんね。。 >あとは、レジストリのアクセス許可ということになりそうに思います。 >regedit.exeにて >「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell」>のアクセス許可を確認してみて下さい。 >通常ならば「Administrators」にフルコントロールが付いているはずです。 こちらはフルコントロールにチェックがついていたので問題ありません。 わたしは「Administrators」権限のあるアカウントでログインしています。 >Set-ExecutionPolicyで変更されるレジストリの値は、上記のキーの下のExecutionPolicyになりま>すので、 >このExecutionPolicyの内容を直接「RemoteSigned」に書き換えてもコマンドと同じことになります。 直接、値を書き換えようとすると、下記エラーがでます。 ”ExecutionPolicyを編集ができません。値の内容を書き込み中に、エラーが発生しました。” ほかになにか原因があるとすれば、ご教示ください。

  • maesen
  • ベストアンサー率81% (646/790)
回答No.1

>そこで、実行ポリシーをRestrictedからRemoteSignedへ変更しました。 Get-ExecutionPolicyの結果がRemoteSignedになったことを確認しているということでよろしいでしょうか? >しかし、同じようにエラーが起きています。 ここは重要なのでエラーの内容をコピー&ペーストするなどして提示されたほうが良いかと思います。 あと一応確認として、スクリプトの実行は相対パス、又は絶対パスで指定されていますか? (スクリプトファイル名のみで実行しようとしていませんか?)

astyhkato
質問者

補足

>Get-ExecutionPolicyの結果がRemoteSignedになったことを確認しているということでよろしいでしょうか? 変更しようとして、エラーではじかれます。変更できず、Restrictedのままです。 >エラーは下記になります。 Set-ExecutionPolicy : レジストリ ー 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' へのアクセスが拒否されました。 発生場所 行:1 文字:20 + Set-ExecutionPolicy <<<< RemoteSigned + CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy]、UnauthorizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyComma nd >あと一応確認として、スクリプトの実行は相対パス、又は絶対パスで指定されていますか? (スクリプトファイル名のみで実行しようとしていませんか?) すみません、実際はスクリプトの実行というか、コマンドレットをおこないたいのですが、 コマンドレットをインポートしローカルで実行したいところです。 下記サイトを参考におこなっています。 http://help.outlook.com/ja-jp/140/cc952755.aspx インポートした時に下記のエラーが起きています。 ここでは、ポリシーの問題で引っかかってるのではないかと考えています。 PS C:\Users> Import-PSSession $Session 警告: 既存のローカル コマンドをシャドウ処理するため、コマンド 'TabExpansion' のためのプロキシ作成はスキップされました。既存のローカル コマンドをシャドウ処理するには、AllowClobber パラメーターを使用してください。 Import-Module : 書式データ ファイルの読み込み中にエラーが発生しました: Microsoft.PowerShell、、C:\Users\AppData\Local\Temp\tmp_e5baf8b6-7ec1-42c3-a91f-677b2e9b272e_5iozrhjz.0no\tmp_ e5baf8b6-7ec1-42c3-a91f-677b2e9b272e_5iozrhjz.0no.format.ps1xml: 次の検証例外のため、ファイルがスキップされました: スク リプトの実行がシステムで無効になっているため、ファイル C:\Users\AppData\Local\Temp\tmp_e5baf8b6-7ec1-42c3-a91f -677b2e9b272e_5iozrhjz.0no\tmp_e5baf8b6-7ec1-42c3-a91f-677b2e9b272e_5iozrhjz.0no.format.ps1xml を読み込めません。詳細に ついては、「get-help about_signing」と入力してヘルプを参照してください。。 発生場所 行:3 文字:30 + Import-Module <<<< -Name $name -Alias * -Function * -Prefix $prefix -DisableNameChecking:$disableNam eChecking -PassThru -ArgumentList @($session) + CategoryInfo : InvalidOperation: (:) [Import-Module]、RuntimeException + FullyQualifiedErrorId : FormatXmlUpateException,Microsoft.PowerShell.Commands.ImportModuleCommand 長文で申し訳ございません。powershell素人です。 お手数ですが、教えていただけますか。