Windows Management Framework (WMF) 5.x リリース ノート
WMF 5.0 の変更
- PowerShell 5.0 では、新しい構造化 Information ストリームが追加されます
- 4 つの新しい DSC リソースを含む DSC の機能強化:
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- ServiceSet
- ProcessSet
- PowerShell リモート処理を使用してロールベースの管理を有効にする Just Enough Administration を追加しました
- PowerShell 5.0 では、ユーザー定義のクラスと列挙型を含むように言語が拡張されています
- PowerShell ISE のデバッグ機能が強化され、リモート デバッグが追加されました
- PowerShellGet モジュールと PackageManagement モジュールを追加しました
- 強化された PowerShell スクリプトのログ記録とトランスクリプト
- 暗号化メッセージ構文コマンドレットを追加する
- WMF 5.0 には、Windows 用 NetworkSwitchManager モジュールが含まれています
- Microsoft.PowerShell.ODataUtils モジュールを追加しました
- ソフトウェア インベントリ ログ (SIL) のサポートを追加しました
- ユーザーの要求と問題に応じて新しいコマンドレットまたは更新コマンドレットを切り取る
WMF 5.1 の変更
WMF 5.1 には、Windows Server 2016 でリリースされた PowerShell、WMI、WinRM、ソフトウェア インベントリ ログ (SIL) コンポーネントが含まれています。 WMF 5.1 は、Windows 7、Windows 8.1、Windows Server 2008 R2、2012、2012 R2 にインストールでき、WMF 5.0 に対して次のようないくつかの機能強化が提供されます。
- 新しいコマンドレット
- PowerShellGet の機能強化には、署名済みモジュールの適用と JEA モジュールのインストールが含まれます
- PackageManagement により、コンテナー、CBS セットアップ、EXE ベースのセットアップ、CAB パッケージのサポートが追加されました
- DSC クラスと PowerShell クラスのデバッグの機能強化
- Pull Server からのカタログ署名付きモジュールの適用や PowerShellGet コマンドレットの使用時など、セキュリティの強化
- 多数のユーザー要求と問題に対する応答
大事な
Windows Server 2008 または Windows 7 に WMF 5.1 をインストールする前に、WMF 3.0 がインストールされていないことを確認してください。 詳細については、「Windows Server 2008 R2 SP1 および Windows 7 SP1の WMF 5.1 の前提条件」を参照してください。
PowerShell エディション
バージョン 5.1 以降、PowerShell はさまざまな機能セットとプラットフォームの互換性を示すさまざまなエディションで使用できます。
- Desktop Edition: .NET Framework 上に構築され、Server Core や Windows Desktop などの Windows のフル フットプリント エディションで実行されている PowerShell のバージョンを対象とするスクリプトとモジュールとの互換性を提供します。
- Core Edition: .NET Core 上に構築され、Nano Server や Windows IoT などの Windows のフットプリントが小さいエディションで実行されている PowerShell のバージョンを対象とするスクリプトとモジュールとの互換性を提供します。
PowerShell エディションの使用の詳細
- $PSVersionTable を使用して PowerShell の実行中のエディションを決定する
- PSEdition パラメーター を使用して CompatiblePSEditions で結果を Get-Module フィルター処理する
- 互換性のあるエディションの PowerShell で実行しない限り、スクリプトの実行を禁止する
- モジュールの特定の PowerShell バージョンとの互換性を宣言
モジュール分析キャッシュ
WMF 5.1 以降、PowerShell では、エクスポートするコマンドなど、モジュールに関するデータをキャッシュするために使用されるファイルを制御できます。
既定では、このキャッシュはファイル ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache
に格納されます。 通常、キャッシュは起動時にコマンドの検索中に読み取られ、モジュールのインポート後にバックグラウンド スレッドで書き込まれます。
キャッシュの既定の場所を変更するには、PowerShell を開始する前に $env:PSModuleAnalysisCachePath
環境変数を設定します。 この環境変数の変更は、子プロセスにのみ影響します。 この値には、PowerShell にファイルを作成および書き込むアクセス許可を持つ完全なパス (ファイル名を含む) の名前を付ける必要があります。 ファイル キャッシュを無効にするには、次に例を示す無効な場所にこの値を設定します。
$env:PSModuleAnalysisCachePath = 'nul'
これにより、無効なデバイスへのパスが設定されます。 PowerShell でパスに書き込めなかった場合、エラーは返されませんが、トレーサーを使用してエラー報告を確認できます。
Trace-Command -PSHost -Name Modules -Expression { Import-Module Microsoft.PowerShell.Management -Force }
キャッシュを書き出すとき、PowerShell は不要な大きなキャッシュを回避するために、存在しなくなったモジュールをチェックします。 これらのチェックが望ましくない場合があります。その場合は、次の設定でオフにすることができます。
$env:PSDisableModuleAnalysisCacheCleanup = 1
この環境変数を設定すると、現在のプロセスですぐに有効になります。
モジュールバージョンの指定
WMF 5.1 では、using module
は PowerShell の他のモジュール関連の構築と同じように動作します。
以前は、特定のモジュール バージョンを指定する方法はありませんでした。複数のバージョンが存在する場合は、エラーが発生しました。
WMF 5.1 の場合:
ModuleSpecification コンストラクター (ハッシュテーブル)
使用できます。 このハッシュ テーブルの形式は
Get-Module -FullyQualifiedName
と同じです。例:
using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}
モジュールのバージョンが複数ある場合、PowerShell は
と同じ解決ロジック を使用し、 や と同じ動作のエラーを返しません。
Pester の機能強化
WMF 5.1 では、PowerShell に付属する Pester のバージョンが 3.3.5 から 3.4.0 に更新されました。 この更新プログラムにより、Nano Server 上の Pester の動作が向上します。
GitHub リポジトリの CHANGELOG を調べることで、Pest の変更を確認できます。