現: 2023-11-07 (火) 14:20:48 yuji ソース
Line 1: Line 1:
 +* PowerShellスクリプトが実行できない [#kd2182d4]
 +コマンドプロンプトでPowerShell用のスクリプトファイルを実行した時,以下のようなエラーがで実行出来ない。
 + D:\home\ueno> PowerShell .\test.ps1
 + .\test.ps1 : このシステムではスクリプトの実行が無効になっているため、ファイル D:\home\ueno\test.ps1 を読み込むことができません。詳細については,「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
 + 発生場所 行:1 文字:1
 + + .\test.ps1
 + + ~~~~~~~~~~
 +     + CategoryInfo          : セキュリティ エラー: (: ) []、PSSecurityException
 +     + FullyQualifiedErrorId : UnauthorizedAccess
 +このエラーが発生する原因は,PowerShellのスクリプトの実行が実行ポリシーによって許可されていないことが原因。~
 +Windows10のデフォルトだと,許可されていないようだ。~
 +
 +以下のコマンドで,PowerShellのスクリプトの実行ポリシーについて確認が出来る。
 + D:\home\ueno> PowerShell Get-ExecutionPolicy
 + Restricted
 +
 +デフォルトではこのように''Restricted''という実行ポリシーとなっている。~
 +この設定状態だと,すべてのスクリプトの実行が制限されていることになる。
 +
 +実行ポリシーとしては,以下の状態がある。
 +|実行ポリシー |署名あり|署名なし/ローカル|署名なし/非ローカル |説明|h
 +|Restricted  |X      |X              |X                  |すべてのスクリプトの実行を制限 (初期設定)|
 +|AllSigned    |◯      |X              |X                  |署名のあるスクリプトのみ実行可能|
 +|RemoteSigned |◯      |◯              |X                  |ローカル上のスクリプトと非ローカル上の署名のあるスクリプトのみ実行可能|
 +|Unrestricted |◯      |◯              |△                  |すべてのスクリプトが実行可能だが非ローカル上のスクリプトは実行時に許可が必要|
 +|Bypass      |◯      |◯              |◯                  |すべてのスクリプトが実行可能|
 +
 +** 実行できるようにする [#m76c43d1]
 +実行できるように対処するには,以下の2つの方法がある。
 +
 ++ ExecutionPolicyオプションによる実行ポリシーの変更~
 +PowerShellのスクリプトの実行時に引数へExecutionPolicyを指定して実行する。
 + D:\home\ueno> PowerShell -ExecutionPolicy RemoteSigned .\test.ps1
 + test
 +実行するスクリプトに対してのみ,指定した実行ポリシーが適用される。
 ++ Set-ExecutionPolicyで実行ポリシーの変更を行う(恒久的)~
 +実行ポリシーを,恒久的に変更する。~
 +この操作はシステム全体に影響を与えので,管理者権限が必要となる。
 + D:\home\ueno> PowerShell Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
 + D:\home\ueno> PowerShell .\test.ps1
 + test
 +以降は指定した実行ポリシーが常に適用されるようになる。
 +
 +** スコープについて [#sb2b6f57]
 +実行ポリシーには適用範囲であるスコープがある。
 +上記の''Set-ExecutionPolicy''ではScopeオプションを指定して適用範囲とともに設定を行います。
 +|スコープ    |適用範囲|h
 +|Process    |実行ポリシーは現在のWindows PowerShellプロセスにのみ影響します。|
 +|CurrentUser |実行ポリシーは現在のユーザーにのみ影響します。|
 +|LocalMachine|実行ポリシーはコンピューターのすべてのユーザーに影響します。|
 +
 +** 実行ポリシーの設定値はどこに保存されるのか [#pad0a82a]
 +実行ポリシーの保存先は,設定のスコープによって変わる。~
 +|スコープ    |保存場所|h
 +|Process    |環境変数PSExecutionPolicyPreference (プロセス起動時にシステムが付与する環境変数設定ではなく,プロセス内部で処理されるもの)|
 +|CurrentUser |レジストリHEKY_CURRENT_USER:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShellのExecutionPolicy|
 +|LocalMachine|レジストリHKEY_LOCAL_MACHINE:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShellのExecutionPolicy|
 +
 +Processでは環境変数にセットされるので注意する。
  

  • PC/Windows/PowerShellスクリプトが実行できない のバックアップ差分(No. All)
    • 現: 2023-11-07 (火) 14:20:48 yuji

トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 89, today: 2, yesterday: 0