about_Group_Policy_Settings

簡単な説明

PowerShell のグループ ポリシー設定について説明します

長い説明

PowerShell には、エンタープライズ環境で Windows コンピューターの一貫した構成値を定義するのに役立つグループ ポリシー設定が含まれています。

PowerShell グループ ポリシー設定は、次のグループ ポリシー パスにあります。

Computer Configuration\
  Administrative Templates\
    PowerShell Core

User Configuration\
  Administrative Templates\
    PowerShell Core

ユーザー構成パスのグループ ポリシー設定は、コンピューター構成パスのグループ ポリシー設定よりも優先されます。

PowerShell 7 では、グループ ポリシーのテンプレートとインストール スクリプトが $PSHOME に含まれています。

グループ ポリシー ツールでは、管理用テンプレート ファイル (.admx.adml) を使用して、ユーザー インターフェイスにポリシー設定を追加できます。 これにより、管理者はレジストリ ベースのポリシー設定を管理できます。 このスクリプトは InstallPSCorePolicyDefinitions.ps1 、ローカル コンピューターに PowerShell Core 管理テンプレート をインストールします。

Get-ChildItem -Path $PSHOME -Filter *Core*Policy*
    Directory: C:\Program Files\PowerShell\7

Mode       LastWriteTime         Length Name
----       -------------         ------ ----
-a---      2/27/2020 12:38 AM     15861 InstallPSCorePolicyDefinitions.ps1
-a---      2/27/2020 12:28 AM      9675 PowerShellCoreExecutionPolicy.adml
-a---      2/27/2020 12:28 AM      6201 PowerShellCoreExecutionPolicy.admx

テンプレートをインストールしたら、グループ ポリシー エディター (gpedit.msc) でこれらの設定を編集できます。

ポリシーは次のとおりです。

  • コンソール セッションの構成:PowerShell を実行する構成エンドポイントを設定します。
  • モジュール ログを有効にする: モジュールの LogPipelineExecutionDetails プロパティを 設定します。
  • PowerShell スクリプト ブロックのログ記録を有効にする:すべての PowerShell スクリプトの詳細なログ記録を有効にします。
  • スクリプトの実行を有効にする:PowerShell 実行ポリシーを設定します。
  • PowerShell トランスクリプションを有効にする: PowerShell コマンドの入出力をテキスト ベースのトランスクリプトにキャプチャできるようにします。
  • [更新可能なヘルプ] の既定の Update-Helpソース パスを、インターネットではなくディレクトリに設定します。

各 PowerShell グループ ポリシー設定には、次の Windows PowerShellグループ ポリシー パスにある同様のWindows PowerShell グループ ポリシー設定の値を使用するオプション ([ポリシー設定の使用] フィールド) があります。

Computer Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

User Configuration\
  Administrative Templates\
    Windows Components\
      Windows PowerShell

注意

これらの PowerShell Core 管理テンプレートには、Windows PowerShellの設定は含まれません。 他のテンプレートの取得とグループ ポリシーの構成の詳細については、「Windows で管理用テンプレートをグループ ポリシー中央ストアを作成および管理する方法」を参照してください。

コンソール セッションの構成

コンソール セッション構成ポリシー設定では、PowerShell を実行する構成エンドポイントを指定します。 これには、既定の PowerShell リモート処理エンドポイントや、特定のユーザー ロール機能を持つカスタム エンドポイントなど、ローカル コンピューターに登録されている任意のエンドポイントを指定できます。

モジュールのログ記録を有効にする

[モジュール ログ記録を有効にする] ポリシー設定では、選択した PowerShell モジュールのログ記録が有効になります。 この設定は、影響を受けるすべてのコンピューター上のすべてのセッションで有効です。

このポリシー設定を有効にして 1 つ以上のモジュールを指定すると、指定したモジュールのパイプライン実行イベントがイベント ビューアーのWindows PowerShell ログに記録されます。

このポリシー設定を無効にすると、すべての PowerShell モジュールで実行イベントのログ記録が無効になります。

このポリシー設定が構成されていない場合、各モジュールの LogPipelineExecutionDetails プロパティは、モジュールの実行イベントがログに記録されるかどうかを決定します。 既定では、すべてのモジュールの LogPipelineExecutionDetails プロパティは False に設定されます。

モジュールのモジュール ログ記録を有効にするには、次のコマンド形式を使用します。 モジュールをセッションにインポートする必要があり、設定は現在のセッションでのみ有効です。

Import-Module <Module-Name>
(Get-Module <Module-Name>).LogPipelineExecutionDetails = $true

特定のコンピューター上のすべてのセッションのモジュール ログを有効にするには、前のコマンドを "すべてのユーザー" PowerShell プロファイル ($Profile.AllUsersAllHosts) に追加します。

モジュールログの詳細については、 about_Modulesを参照してください。

PowerShell スクリプト ブロックのログ記録を有効にする

PowerShell スクリプトブロックログ記録ポリシー設定では、Microsoft-Windows-PowerShell/Operational イベント ログへのすべての PowerShell スクリプト入力のログ記録を有効にします。 このポリシー設定を有効にすると、PowerShell Core はコマンド、スクリプト ブロック、関数、スクリプトの処理 (対話形式で呼び出された場合でも自動化を介して呼び出されたか) の処理をログに記録します。

このポリシー設定を無効にすると、PowerShell スクリプトの入力のログ記録は無効になります。 スクリプト ブロックの呼び出しのログ記録を有効にすると、PowerShell はさらに、コマンド、スクリプト ブロック、関数、またはスクリプトの呼び出しの開始時または停止時にイベントを記録します。 呼び出しのログ記録を有効にすると、大量のイベント ログが生成されます。

スクリプトの実行を有効にする

[スクリプトの実行を有効にする] ポリシー設定では、コンピューターとユーザーの実行ポリシーを設定します。これによって、実行が許可されるスクリプトが決まります。

ポリシー設定を有効にした場合は、次のポリシー設定の中から選択できます。

  • 署名されたスクリプトのみを許可すると、 スクリプトは信頼できる発行元によって署名されている場合にのみ実行できます。 このポリシー設定は、AllSigned 実行ポリシーと同等です。

  • ローカル スクリプトとリモート署名付きスクリプトを許可すると、 すべてのローカル スクリプトを実行できます。 インターネットから作成されたスクリプトは、信頼できる発行元によって署名されている必要があります。 このポリシー設定は、RemoteSigned 実行ポリシーと同じです。

  • すべてのスクリプトを許可すると、 すべてのスクリプトを実行できます。 このポリシー設定は、無制限実行ポリシーと同じです。

このポリシー設定を無効にした場合、スクリプトの実行は一切許可されません。 このポリシー設定は、制限付き実行ポリシーと同じです。

このポリシー設定を無効にするか、未構成にした場合、コマンドレットによってコンピューターまたはユーザーに対して設定された実行ポリシーによって Set-ExecutionPolicy 、スクリプトの実行が許可されるかどうかが決まります。 既定値は Restricted です。

詳細については、「about_Execution_Policies」を参照してください。

PowerShell 文字起こしを有効にする

PowerShell 文字起こしポリシー設定を使用すると、PowerShell Core コマンドの入力と出力をテキスト ベースのトランスクリプトにキャプチャできます。 このポリシー設定を有効にすると、PowerShell Core と PowerShell Core エンジンを利用する他のアプリケーションの文字起こしログが有効になります。 既定では、PowerShell Core では、各ユーザーの [マイ ドキュメント] ディレクトリへのトランスクリプト出力が記録され、ファイル名に "PowerShell_transcript" が含まれており、コンピューター名と開始時間が記録されます。 このポリシーを有効にすることは、各 PowerShell Core セッションで Start-Transcript コマンドレットを呼び出すのと同じです。

このポリシー設定を無効にした場合、PowerShell ベースのアプリケーションの文字起こしログは既定で無効になりますが、Start-Transcriptコマンドレットを使用してもトランスクリプトを有効にできます。

OutputDirectory 設定を使用して共有場所への文字起こしログ記録を有効にする場合は、ユーザーが他のユーザーまたはコンピューターのトランスクリプトを表示できないように、そのディレクトリへのアクセスを制限してください。

Update-Help の既定のソース パスを設定する

[ Update-Help の既定のソース パスの 設定] ポリシー設定は、コマンドレットの SourcePath パラメーターの既定値を Update-Help 設定します。 この設定により、ユーザーはコマンドレットを Update-Help 使用してインターネットからヘルプ ファイルをダウンロードできなくなります。

注意

このグループ ポリシー設定は、[コンピューターの構成] と [ユーザーの構成] の下に表示されます。 ただし、[コンピューターの構成] のグループ ポリシー設定のみが有効です。 ユーザー構成のグループ ポリシー設定は無視されます。

このコマンドレットは Update-Help 、PowerShell モジュールの最新のヘルプ ファイルをダウンロードしてインストールし、コンピューターにインストールします。 既定では、 Update-Help モジュールで指定されたインターネットの場所から新しいヘルプ ファイルをダウンロードします。

ただし、このコマンドレットを Save-Help 使用して、最新のヘルプ ファイルをネットワーク共有などのファイル システムの場所にダウンロードし、コマンドレットを Update-Help 使用してファイル システムの場所からヘルプ ファイルを取得し、コンピューターにインストールできます。 コマンドレットの Update-HelpSourcePath パラメーターは、ファイル システムの場所を指定します。

SourcePath パラメーターの既定値を指定すると、このグループ ポリシー設定により、SourcePath パラメーターがすべてのUpdate-Helpコマンドに暗黙的に追加されます。 ユーザーは、別のファイル システムの場所を入力することで、既定値として指定された特定のファイル システムの場所をオーバーライドできます。 ただし、 SourcePath パラメーターをコマンドから Update-Help 削除することはできません。

このポリシー設定を有効にした場合は、 SourcePath パラメーターの既定値を指定できます。 ファイル システムの場所を入力します。

このポリシー設定が無効になっているか、構成されていない場合、コマンドレットの SourcePath パラメーターの Update-Help 既定値はありません。 ユーザーは、インターネットまたは任意のファイル システムの場所からヘルプをダウンロードできます。

詳しくは、「about_Updatable_Help」をご覧ください。

キーワード

about_Group_Policies about_GroupPolicy

こちらもご覧ください