PowerShell/PowerShellスクリプトを起動できるようにする
の編集
Top
/
PowerShell
/
PowerShellスクリプトを起動できるようにする
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * PowerShellスクリプトを起動できるようにする・実行ポリシーの変更 [#waea5bac] PowerShellスクリプト(拡張子.ps1)はデフォルトでは実行禁止となっています。~ せっかくPowerShellスクリプトを勉強しようと思ってスクリプトを書きファイルに保存し実行しようとしても以下のようなメッセージが表示されてしまいます。 PS C:\PowerShell> .\hello.ps1 スクリプトの実行がシステムで無効になっているため、ファイル C:\PowerShell\hello.ps1 を読み込めません。詳細については、「 get-help about_signing」と入力してヘルプを参照してください。 発生場所 行:1 文字:12 + .\hello.ps1 <<<< + CategoryInfo : NotSpecified: (:) []、PSSecurityException + FullyQualifiedErrorId : RuntimeException メッセージ出力の通り、''スクリプトの実行がシステムで無効になっている''ためです。~ 本資料では、スクリプトの実行を有効にする方法を記します。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#a0b947c7] -[[PowerShell実行ポリシーを変更しPowerShellスクリプトを起動できるようにする>PowerShell/PowerShellスクリプトを起動できるようにする]] -[[PowerShellの実行ポリシーを変更せずにスクリプトを実行する方法>PowerShell/実行ポリシーを変更せずにスクリプトを実行する方法]] -[[PowerShellスクリプトが起動できない環境でスクリプトを起動する方法・Invoke-Expression>PowerShell/PowerShellスクリプトが起動できない環境でスクリプトを起動する方法]] * get-help about_signing [#q952d8c1] メッセージ内にある''get-help about_signing''を確認すると以下のような記述があります。 PS C:\PowerShell> Get-Help about_signing | more <snip> 詳細説明 Restricted 実行ポリシーでは、すべてのスクリプトの実行が禁止されます。 AllSigned 実行ポリシーおよび RemoteSigned 実行ポリシーでは、デジタル署名がないスクリプ トの実行が禁止されます。 このトピックでは、実行ポリシーが RemoteSigned の場合であっても選択した署名されていないス クリプトを実行する方法について説明します。加えて、自分専用にスクリプトに署名する方法について 説明します。 Windows PowerShell の実行ポリシーの詳細については、「about_Execution_Policy」を参照 してください。 現在のポリシーを確認するコマンドGet-ExecutionPolicyを実行すると''Restricted''が返却されました。 PS C:\PowerShell> Get-ExecutionPolicy Restricted これでは、スクリプトすべてが実行できません。 * PowerShell実行ポリシーの種類 [#u4e3435e] 以下のPowerShellの実行ポリシーの種類を記します。 ** 実行ポリシーの種類 [#b1d3f16f] 使用すると思われる実行ポリシーについて記述します。 - Restricted~ デフォルト値。すべてのスクリプトを実行することができません。 -AllSigned~ 署名されているスクリプトのみ実行可能。 -RemoteSigned~ ローカルのスクリプトは実行可能。ダウンロードしたスクリプトは署名が必要。 -Unrestricted~ すべて実行可能。ただし、ダウンロードしたスクリプトに関しての実行はユーザーの許可が必要。 したがって、PowerShellの勉強や開発であれば、''RemoteSigned''がおすすめです。 ** about_Execution_Policiesの抜粋 [#ybb29527] 実行ポリシーのヘルプは以下のコマンドで表示することができます。 Get-Help about_Execution_Policies 以下、about_Execution_Policiesに記載されていた内容の抜粋です。 PS C:\PowerShell> Get-Help about_Execution_Policies | more トピック about_Execution_Policies 簡易説明 Windows PowerShell の実行ポリシーとその管理方法について説明します。 <snip> - Restricted Restricted - 既定の実行ポリシーです。 - 個々のコマンドは許可されますが、スクリプトは実行されません。 - 書式設定ファイルと構成ファイル (.ps1xml)、モジュール スクリプト ファイル (.psm1)、および Windows PowerShell プロファイル (.ps1) を含む、すべてのスクリプト ファイルの実行が禁止されます。 - AllSigned AllSigned - スクリプトを実行できます。 - すべてのスクリプトと構成ファイルが信頼された発行元によって署名されていることが 要求されます (ユーザーがローカル コンピューターで作成するスクリプトを含む)。 - 信頼されているかどうかが分類されていない発行元からのスクリプトを実行する前に、プ ロンプトが表示されます。 - インターネット以外のソースによる署名なしスクリプトや署名済みの悪意のあるスクリ プトを実行する危険性があります。 - RemoteSigned RemoteSigned - スクリプトを実行できます。 - インターネットからダウンロードされたスクリプトおよび構成ファイル (電子メール プ ログラムとインスタント メッセージング プログラムを含む) に対して、信頼された発行元 によるデジタル署名が必要です。 - (インターネットからダウンロードしたのではなく) ローカル コンピューターで実行され たスクリプトおよび作成されたスクリプトにはデジタル署名は不要です。 - 署名済みの悪意のあるスクリプトを実行する危険性があります。 - Unrestricted Unrestricted - 署名なしスクリプトを実行できます (悪意のあるスクリプトを実行する危険性があります)。 - インターネットからダウンロードしたスクリプトおよび構成ファイルを実行する前にユ ーザーに警告します。 - Bypass Bypass - 何もブロックされず、警告またはプロンプトも表示されません。 - この実行ポリシーは、Windows PowerShell スクリプトが大きいアプリケーションに組み 込まれる構成や、独自のセキュリティ モデルを備えたプログラムの基礎として Windows PowerShell が使用される構成を対象に設計されています。 - Undefined Undefined - 現在のスコープで設定されている実行ポリシーはありません。 - すべてのスコープの実行ポリシーが Undefined である場合、効力を持つ実行ポリシーは 既定の実行ポリシーである Restricted となります。 注: 汎用名前付け規則 (UNC) パスとインターネット パスとが区別されないシステムでは、 RemoteSigned 実行ポリシーで UNC パスによって識別されるスクリプトの実行が許可されない可能性 があります。 * PowerShell実行ポリシーの変更 [#l9468f21] PowerShell実行ポリシーを変更するには、以下のコマンドを実行します。 Set-ExecutionPolicy ポリシー 以下にRemoteSignedポリシーに変更した場合の操作を記します。~ - 実行ポリシー変更前 PS C:\PowerShell> Get-Content hello.ps1 Write-Host Hello PS C:\PowerShell> .\hello.ps1 スクリプトの実行がシステムで無効になっているため、ファイル C:\PowerShell\hello.ps1 を読み込めません。詳細については、「 get-help about_signing」と入力してヘルプを参照してください。 発生場所 行:1 文字:12 + .\hello.ps1 <<<< + CategoryInfo : NotSpecified: (:) []、PSSecurityException + FullyQualifiedErrorId : RuntimeException PS C:\PowerShell> Get-ExecutionPolicy Restricted - 実行ポリシーをRemoteSignedに変更(&color(red){失敗例};)~ 下記の実行ポリシー変更失敗はPwerShellを管理者権限で起動していないためでした。 PS C:\PowerShell> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 PS C:\PowerShell> Get-ExecutionPolicy Restricted PS C:\PowerShell> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): 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.SetExecutionPolicyCommand - PowerShellを管理者権限で起動し実行ポリシーを変更する(成功例)~ 管理者権限でPowerShellを実行する方法は下図のスクリーンショットを参考にしてください。 #ref(ps-01.gif) #br RemoteSignedに変更しhello.ps1スクリプトを実行した操作例になります。 PS C:\PowerShell> Get-ExecutionPolicy Restricted PS C:\PowerShell> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y PS C:\PowerShell> Get-ExecutionPolicy RemoteSigned PS C:\PowerShell> .\hello.ps1 Hello #htmlinsertpcsp(win-btm.html,win-sp.html)
タイムスタンプを変更しない
#navi(../) * PowerShellスクリプトを起動できるようにする・実行ポリシーの変更 [#waea5bac] PowerShellスクリプト(拡張子.ps1)はデフォルトでは実行禁止となっています。~ せっかくPowerShellスクリプトを勉強しようと思ってスクリプトを書きファイルに保存し実行しようとしても以下のようなメッセージが表示されてしまいます。 PS C:\PowerShell> .\hello.ps1 スクリプトの実行がシステムで無効になっているため、ファイル C:\PowerShell\hello.ps1 を読み込めません。詳細については、「 get-help about_signing」と入力してヘルプを参照してください。 発生場所 行:1 文字:12 + .\hello.ps1 <<<< + CategoryInfo : NotSpecified: (:) []、PSSecurityException + FullyQualifiedErrorId : RuntimeException メッセージ出力の通り、''スクリプトの実行がシステムで無効になっている''ためです。~ 本資料では、スクリプトの実行を有効にする方法を記します。 #contents #htmlinsertpcsp(win-top.html,win-sp.html) * 関連記事 [#a0b947c7] -[[PowerShell実行ポリシーを変更しPowerShellスクリプトを起動できるようにする>PowerShell/PowerShellスクリプトを起動できるようにする]] -[[PowerShellの実行ポリシーを変更せずにスクリプトを実行する方法>PowerShell/実行ポリシーを変更せずにスクリプトを実行する方法]] -[[PowerShellスクリプトが起動できない環境でスクリプトを起動する方法・Invoke-Expression>PowerShell/PowerShellスクリプトが起動できない環境でスクリプトを起動する方法]] * get-help about_signing [#q952d8c1] メッセージ内にある''get-help about_signing''を確認すると以下のような記述があります。 PS C:\PowerShell> Get-Help about_signing | more <snip> 詳細説明 Restricted 実行ポリシーでは、すべてのスクリプトの実行が禁止されます。 AllSigned 実行ポリシーおよび RemoteSigned 実行ポリシーでは、デジタル署名がないスクリプ トの実行が禁止されます。 このトピックでは、実行ポリシーが RemoteSigned の場合であっても選択した署名されていないス クリプトを実行する方法について説明します。加えて、自分専用にスクリプトに署名する方法について 説明します。 Windows PowerShell の実行ポリシーの詳細については、「about_Execution_Policy」を参照 してください。 現在のポリシーを確認するコマンドGet-ExecutionPolicyを実行すると''Restricted''が返却されました。 PS C:\PowerShell> Get-ExecutionPolicy Restricted これでは、スクリプトすべてが実行できません。 * PowerShell実行ポリシーの種類 [#u4e3435e] 以下のPowerShellの実行ポリシーの種類を記します。 ** 実行ポリシーの種類 [#b1d3f16f] 使用すると思われる実行ポリシーについて記述します。 - Restricted~ デフォルト値。すべてのスクリプトを実行することができません。 -AllSigned~ 署名されているスクリプトのみ実行可能。 -RemoteSigned~ ローカルのスクリプトは実行可能。ダウンロードしたスクリプトは署名が必要。 -Unrestricted~ すべて実行可能。ただし、ダウンロードしたスクリプトに関しての実行はユーザーの許可が必要。 したがって、PowerShellの勉強や開発であれば、''RemoteSigned''がおすすめです。 ** about_Execution_Policiesの抜粋 [#ybb29527] 実行ポリシーのヘルプは以下のコマンドで表示することができます。 Get-Help about_Execution_Policies 以下、about_Execution_Policiesに記載されていた内容の抜粋です。 PS C:\PowerShell> Get-Help about_Execution_Policies | more トピック about_Execution_Policies 簡易説明 Windows PowerShell の実行ポリシーとその管理方法について説明します。 <snip> - Restricted Restricted - 既定の実行ポリシーです。 - 個々のコマンドは許可されますが、スクリプトは実行されません。 - 書式設定ファイルと構成ファイル (.ps1xml)、モジュール スクリプト ファイル (.psm1)、および Windows PowerShell プロファイル (.ps1) を含む、すべてのスクリプト ファイルの実行が禁止されます。 - AllSigned AllSigned - スクリプトを実行できます。 - すべてのスクリプトと構成ファイルが信頼された発行元によって署名されていることが 要求されます (ユーザーがローカル コンピューターで作成するスクリプトを含む)。 - 信頼されているかどうかが分類されていない発行元からのスクリプトを実行する前に、プ ロンプトが表示されます。 - インターネット以外のソースによる署名なしスクリプトや署名済みの悪意のあるスクリ プトを実行する危険性があります。 - RemoteSigned RemoteSigned - スクリプトを実行できます。 - インターネットからダウンロードされたスクリプトおよび構成ファイル (電子メール プ ログラムとインスタント メッセージング プログラムを含む) に対して、信頼された発行元 によるデジタル署名が必要です。 - (インターネットからダウンロードしたのではなく) ローカル コンピューターで実行され たスクリプトおよび作成されたスクリプトにはデジタル署名は不要です。 - 署名済みの悪意のあるスクリプトを実行する危険性があります。 - Unrestricted Unrestricted - 署名なしスクリプトを実行できます (悪意のあるスクリプトを実行する危険性があります)。 - インターネットからダウンロードしたスクリプトおよび構成ファイルを実行する前にユ ーザーに警告します。 - Bypass Bypass - 何もブロックされず、警告またはプロンプトも表示されません。 - この実行ポリシーは、Windows PowerShell スクリプトが大きいアプリケーションに組み 込まれる構成や、独自のセキュリティ モデルを備えたプログラムの基礎として Windows PowerShell が使用される構成を対象に設計されています。 - Undefined Undefined - 現在のスコープで設定されている実行ポリシーはありません。 - すべてのスコープの実行ポリシーが Undefined である場合、効力を持つ実行ポリシーは 既定の実行ポリシーである Restricted となります。 注: 汎用名前付け規則 (UNC) パスとインターネット パスとが区別されないシステムでは、 RemoteSigned 実行ポリシーで UNC パスによって識別されるスクリプトの実行が許可されない可能性 があります。 * PowerShell実行ポリシーの変更 [#l9468f21] PowerShell実行ポリシーを変更するには、以下のコマンドを実行します。 Set-ExecutionPolicy ポリシー 以下にRemoteSignedポリシーに変更した場合の操作を記します。~ - 実行ポリシー変更前 PS C:\PowerShell> Get-Content hello.ps1 Write-Host Hello PS C:\PowerShell> .\hello.ps1 スクリプトの実行がシステムで無効になっているため、ファイル C:\PowerShell\hello.ps1 を読み込めません。詳細については、「 get-help about_signing」と入力してヘルプを参照してください。 発生場所 行:1 文字:12 + .\hello.ps1 <<<< + CategoryInfo : NotSpecified: (:) []、PSSecurityException + FullyQualifiedErrorId : RuntimeException PS C:\PowerShell> Get-ExecutionPolicy Restricted - 実行ポリシーをRemoteSignedに変更(&color(red){失敗例};)~ 下記の実行ポリシー変更失敗はPwerShellを管理者権限で起動していないためでした。 PS C:\PowerShell> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 PS C:\PowerShell> Get-ExecutionPolicy Restricted PS C:\PowerShell> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): 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.SetExecutionPolicyCommand - PowerShellを管理者権限で起動し実行ポリシーを変更する(成功例)~ 管理者権限でPowerShellを実行する方法は下図のスクリーンショットを参考にしてください。 #ref(ps-01.gif) #br RemoteSignedに変更しhello.ps1スクリプトを実行した操作例になります。 PS C:\PowerShell> Get-ExecutionPolicy Restricted PS C:\PowerShell> Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y PS C:\PowerShell> Get-ExecutionPolicy RemoteSigned PS C:\PowerShell> .\hello.ps1 Hello #htmlinsertpcsp(win-btm.html,win-sp.html)
テキスト整形のルールを表示する
添付ファイル:
ps-01.gif
2969件
[
詳細
]