• 締切済み

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素人です。 お手数ですが、教えていただけますか。

関連するQ&A

  • PowerShell

    PowerShellについてです。 スクリプトを実行するために、実行ポリシーを以下のコマンドで、RemoteSignedに変更しようとすると、エラーで変更できません。どのようにすれば変更できるかわかる方いませんか。 --------------------------------------------------------------- Set-ExecutionPolicy RemoteSigned --------------------------------------------------------------- エラーメッセージ: Set-ExecutionPolicy : レジストリ キー 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell ' へのアクセスが拒否されました。 発生場所 行:1 文字:20 + set-executionpolicy <<<< RemoteSigned --------------------------------------------------------------- <<環境>> Vista 32bit

  • Powershellで事項ファイルを作りたい

    #(1)powershellの実行ポリシー変更 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force #(2)01_Kittingフォルダへの移動 net use X: \\filesever\user\01_Kitting pushd \\fileserver\user\01_Kitting 上記コマンドをPowerShell(管理者)内で実行したいのですがどうしたら良いでしょうか? 宜しくお願い致します。

  • powershellをバックグラウンド実行

    いつもお世話になっております。 とあるpowershellをバックグラウンド実行したいのですが、うまくいきません。 【実施したいこと】 background.ps1をバックグラウンド実行したい。 【前提条件】 background.ps1はbackground.batファイルより実行する想定で考えている。 background.batの中身(イメージ) (中略) powershel l-command "background.ps1" (中略) get-executionpolicyではremotesignedで~ps1ファイルは実行許可を与えている。 【確認していること】 1.start-jobコマンドを使用すればバックグラウンド実行ができることを確認済み 2.batの実行を以下にするも実行がうまくいかない。 powershell -executionpolicy remotesigned -command "start-job background.ps1" 3.間にpowershellをバックグラウンドするbackground_middle.ps1をかませてもうまくいかない。 batのコマンド実行をbackground_middle.ps1にし、background_middle.ps1を start-job backgroundと記載しており実行してもうまくいかない。 4.powershell上でstart-job background.ps1を手動で実施するとうまく実行される。 申し訳ございませんが、大変困っており、すぐ回答を頂きたいです

  • windows powershell

    windows powershell は動作を停止しました パソコンをはじめて直後に上記のメッセージがあらわれます。メッセージを消してそのまま作業を続けても問題はおこらないのですが、気になりネットで対策を調べて、まず行ったのがコマンドを管理者権限で起動してsfc /scannowと打ち込みシステムファイルのエラーチェックを行いましたがエラーはありませんでした。その次に管理ツールwindows powershell Modulelを起動して Set-ExecutionPolicy RemoteSignedというコマンドを実行して実行ポリシーを変更しようとすると[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"):とでてくるので、Yを入れるのですが何もおきません。結局不具合のままです。ちなみに今のパソコンはログインユーザーアカウントが2つあり、1つは問題なく動作しています。

  • PowerShellで処理を簡単にしたい

    PowerShellは、ど素人です。 PowershellであるPs1ファイルを実行するのに 現在下記の手順で行っています。 1)PowerShellを管理者権限で実行 2)以下のコマンドを最初に実行 powershell set-executionPolicy remoteSigned 3)次に以下のコマンドを実行 powershell -File C:\Users\Mic\Desktop\Keep\sample.ps1 毎回、2),3)をPowerShellの画面にコピペして処理しています。 もう少し簡単な手順になれば嬉しいのですが、 1),2),3)を一つのBATで処理するような方法はありませんか ? BATに限らず手順が減るような方法があれば教えてください。

  • Win7でPowerShell 1.0の削除方法。

    削除方法を探している中で、次の記述を見つけました。 「Windows XPでPowerShell 1.0をアンインストールしようと思ったのですが、プログラムの追加と削除を開き、更新プログラムの表示をONにしても一覧にWindows PowerShell 1.0が表示されなかったため、ちょっと強引に削除してみました。 Windows PowerShell 1.0は更新プログラム扱いで、番号はKB926140です。 というわけで、以下のファイルを実行して消しました。」 C:\WINDOWS\$NtUninstallKB926140-v5$\spuninst\spuninst.exe 以上の記述内容は、OS以外は私の状況と同じでした。このファイルの実行の仕方がわからないので、お教えいただけますでしょうか。 また、上記のファイル実行により、WindowsPowershell(x86)、WindowsPowershell ISE(x86)、WindowsPowershell、WindowsPowershell ISE の全ての削除が実行されるで、間違いないでしょうか。

  • コマンドプロンプトにてPowerShell実行

    Windows10のアップデート後にWindowsが起動できなくなり、青い画面の 「システムの復元」を実行しようとすると「このドライブでシステムの保護を 有効にする必要があります」となります。 色々ネットで調べて、コマンドプロンプトよりPowerShellにて有効にできる とのことだったのですが、実行すると「'PowerShell'は内部コマンドまたは 外部コマンド、操作可能なプログラムまたはバッチファイルとして認識 されていません」となります。 コマンドプロンプトの画面の左上には「管理者」となっています。 しかし、コマンドプロンプト画面になったときに「このコマンドを処理する にはメモリリソースが足りません」となりました。 なぜPowerShellが実行できないのでしょうか? 実行する方法をご教授下さい。 よろしくお願い致します。

  • PowerShellを使ってキッテッングがしたい

    下記のコマンドをPowerShell(管理者)でテキストファイルからコピペして実行しています。 #(1)powershellの実行ポリシー変更 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force #(2)01_Kittingフォルダへの移動 net use X: \\filesever\user\01_Kitting pushd \\fileserver\user\01_Kitting 上記を例えば¥D(USB等)でPowerShell(管理者)を立ち上げて実行できるようなバッチファイル?を作りたいと思っていました。 01_Kittingの中にはキッテッングをするメニューが01~09まであり、PowerShell(管理者)で01と入力してTabを打つと01のメニューが実行できるようになります。 こんな都合よいバッチファイル?が出来るかわかりませんが、何卒、ご助言をいただければ幸いです。 何卒よろしくお願い申し上げます。

  • PowerShellのスクリプト実行方法

    PowerShellを勉強しようと思い、PowerShell ISEを起動して、色々なコマンドを実行していました。 今度はテキストエディタでコマンドを書いて、「myPSCommand.ps1」というファイルをCドライブ直下に配置しました。 下記のサイトを参考に環境変数にPATHを通しました。 http://www.oborodukiyo.info/PowerShell/v20/PS-EnviromentPath.aspx そして、ファイルをダブルクリックしたら、メモ帳が起動してきました・・・ 調べたら、下記のサイトが見つかりました。 http://www.atmarkit.co.jp/ait/articles/0709/20/news125.html セキュリティの為に、PowerShellからスクリプトを呼び出す必要があると書いてありました。 やりたい事は、あるファイルをバックアップしたいと思います。 スクリプトにコマンドを書き込んで、タスクスケジューラーで特定の時間がくると、ファイルをバックアップするような事をしたいと思います。 ただ、今の状態だとタスクスケジューラーに「myPSCommand.ps1」を指定すると、その時間がくるとメモ帳が開いてしまいます。 スクリプトのみが実行されるには、どのようにすればよろしいでしょうか?

  • グループポリシーでログオンスクリプトが実行されない

    Windows Server 2003でドメインを構築しています。 クライアントのOSはXPです。 ドメイン参加しているユーザー・コンピューターの電源オプションを グループポリシー(GPMC)で一括変更したいのですが、 ログオン時にバッチが実行されません。 <設定手順> 1.グループポリシーの管理画面  グループポリシーオブジェクトグループポリシーを作成。 2.グループポリシー オブジェクトエディタ  ユーザーの構成→Windowsの設定→スクリプト(ログオン/ログオフ) 3.ログオンのプロパティで、ファイルを指定 4.組織単位に作成したGPOをリンク 以下のサイトを参考に設定しています。  グループ・ポリシーとpowercfg.exeコマンドで電源オプションの設定を変更する  http://www.atmarkit.co.jp/fwin2k/win2ktips/1026pcfgpolicy/pcfgpolicy.html  Powercfg.exe を使用して Windows XP で  電源設定のグループ ポリシー オブジェクトを作成する方法  http://support.microsoft.com/kb/915160/ja  Windows Server 2003のADで電源管理  http://ap.atmarkit.co.jp/bbs/core/fwin/19047 ※電源設定のバッチファイルは、以下のサイトと同じソースです。  http://www.atmarkit.co.jp/fwin2k/win2ktips/1013powercfg/powercfg.html 電源の設定はレジストリの変更が絡むのが原因かと思い、 レジストリに関係ない別のバッチでも試してみましたが、 同様に実行されませんでした。 バッチファイルは以下のサイトからダウンロードしたものを使用しています。 ドメインユーザのデスクトップで実行したところ実行されました。 日付フォルダ作成 http://pcbase.web.infoseek.co.jp/bat/makefolder01.htm どうしてバッチが実行されないのか、原因が分かりません。 それと、2003・XPの環境では、 グループポリシーとバッチでの電源管理は可能でしょうか? よろしくお願いします。