about_Windows_PowerShell_5.0
概要
Windows PowerShell 5.0 に含まれる新機能について説明します。
詳細説明
Windows PowerShell 5.0 には、その用途を拡大し、使いやすさを向上させる重要な機能や、Windows ベースの環境をより簡単かつ包括的に制御および管理できるようにする重要な新しい機能が含まれています。
Windows PowerShell 5.0 には下位互換性があります。 Windows PowerShell 4.0、Windows PowerShell 3.0、Windows PowerShell 2.0 用に設計されたコマンドレット、プロバイダー、モジュール、スナップイン、スクリプト、関数、およびプロファイルは、全般的に変更なしで Windows PowerShell 5.0 でも動作します。
Windows PowerShell 5.0 は、既定で Windows Server Technical Preview および Windows Technical Preview にインストールされます。 Windows PowerShell 5.0 を Windows Server 2012 R2、Windows 8.1 Enterprise または Windows 8.1 Pro にインストールするには、Windows Management Framework 5.0 をダウンロードしてインストールします。 Windows Management Framework 5.0 プレビューをインストールする前に、ダウンロードの詳細を読み、システム要件がすべて満たされていることを確認してください。
Windows PowerShell 5.0 の変更点については、「Windows PowerShellの新機能」を参照してください。
新機能
Windows PowerShell の新機能
Windows PowerShell 5.0 以降では、クラスを使用して、他のオブジェクト指向のプログラミング言語に類似した正式な構文とセマンティクスを使用して開発することができます。 Class、Enum などのキーワードが、新しい機能をサポートするために Windows PowerShell 言語に追加されました。 クラスに関する作業の詳細については、「about_Classes」を参照してください。
Microsoft Research とのコラボレーションにより、新しいコマンドレット、ConvertFrom-String が追加されました。 ConvertFrom-String では、テキスト文字列のコンテンツから構造化されたオブジェクトを抽出して、解析することができます。 詳細については、ConvertFrom-String を参照してください。
新しいモジュール、Microsoft.PowerShell.Archive には、コマンドレットが含まれています。そのコマンドレットでは、ファイルとフォルダーをアーカイブ (ZIP とも呼ばれる) ファイルに圧縮して、既存の ZIP ファイルからファイルを抽出し、ZIP ファイル内で圧縮されたファイルの新しいバージョンで ZIP ファイルを更新できます。
新しいモジュール OneGet を使用すると、インターネット上でソフトウェア パッケージを検出してインストールできます。 OneGet モジュールは、Windows パッケージ管理を単一のWindows PowerShell インターフェイスと統合するための、既存のパッケージ マネージャー (パッケージ プロバイダーとも呼ばれます) のマネージャーまたはマルチプレクサです。
新しいモジュール PowerShellGet を使用すると、PowerShell リソース ギャラリー、または Register-PSRepository コマンドレットを実行して設定できる内部モジュール リポジトリで、モジュールと DSC リソースを検索、インストール、発行、更新できます。
New-Item、Remove-Item、および Get-ChildItem がシンボリック リンクの作成と管理をサポートするために強化されました。 New-Item の ItemType パラメーターは、新しい値である SymbolicLink を受け入れます。 シンボリック リンクは、New-Item コマンドレットを実行することで、1 つの行で作成できるようになりました。
Windows PowerShell トランスクリプションが強化され、コンソール ホスト (powershell.exe) に加えて、すべてのホスト アプリケーション (Windows PowerShell ISE など) に適用されるようになりました。 トランスクリプション オプション (システム全体のトランスクリプトの有効化を含む) は、 [PowerShell トランスクリプションを有効にする] グループ ポリシー設定 ([管理用テンプレート]/[Windows コンポーネント]/[Windows PowerShell]) を有効にすることで設定できます。
新しい詳細スクリプト トレース機能では、システムで使用される Windows PowerShell スクリプトの詳細な追跡や分析を有効にすることができます。 詳細なスクリプト トレースを有効にすると、Windows PowerShell はすべてのスクリプト ブロックを Windows イベント トレーシング (ETW) イベント ログ、Microsoft-Windows-PowerShell/Operational に記録します。
Windows PowerShell 5.0 以降では、新しい Cryptographic Message Syntax コマンドレットが、RFC5652 で説明されているように暗号によってメッセージを保護するための IETF 標準書式を使用して、コンテンツの暗号化と暗号化解除をサポートします。 Get-CmsMessage、Protect-CmsMessage、および Unprotect-CmsMessage の各コマンドレットが Microsoft.PowerShell.Security モジュールに追加されました。
Microsoft.PowerShell.Utility モジュールの新しいコマンドレット、Get-Runspace、Debug-Runspace、Get-RunspaceDebug、Enable-RunspaceDebug、および Disable-RunspaceDebug を使用すると、実行空間でのデバッグ オプションを設定して、実行空間でのデバッグを開始、停止できます。 任意の実行空間 (つまり、Windows PowerShell コンソール Windows PowerShellまたは ISE セッションの既定の実行空間ではない実行空間) をデバッグする場合は、Windows PowerShellスクリプトにブレークポイントを設定し、ブレークポイントを追加すると、デバッガーをアタッチして実行空間スクリプトをデバッグできるようになるまでスクリプトの実行を停止できます。 実行空間用の Windows PowerShell スクリプト デバッガーに、任意の実行空間に対する入れ子になったデバッグのサポートが追加されました。
新しいコマンドレット、Enter-PSHostProcess と Exit-PSHostProcess を使用すると、Windows PowerShell コンソールで実行している現在のプロセスとは別のプロセスで Windows PowerShell スクリプトをデバッグできます。 Enter-PSHostProcess を実行して、特定のプロセス ID を入力するか、特定のプロセス ID にアタッチしてから、Get-Runspace を実行して、プロセス内のアクティブな実行空間を返します。 プロセス内でスクリプトのデバッグが完了したら、Exit-PSHostProcess を実行して、プロセスからデタッチします。
新しい Wait-Debugger コマンドレットが Microsoft.PowerShell.Utility モジュールに追加されました。 Wait-Debugger を実行すると、スクリプトの次のステートメントを実行する前に、デバッガー内のスクリプトを停止することができます。
Windows PowerShell ワークフロー デバッガーで、コマンドまたはタブ補完をサポートするようになったため、入れ子になったワークフロー関数をデバッグすることができます。 Ctrl+Break キーを押すと、実行中のスクリプト、ローカルとリモートの両方のセッション、およびワークフロー スクリプトで、デバッガーに入れるようになりました。
Debug-Job コマンドレットが Microsoft.PowerShell.Core モジュールに追加され、Windows PowerShell ワークフローの実行中のジョブ スクリプト、バックグラウンド、およびリモート セッションで実行するジョブをデバッグできます。
新しい状態、AtBreakpoint が Windows PowerShell ジョブに追加されました。 AtBreakpoint 状態は、ジョブがブレークポイントの設定を含むスクリプトを実行し、スクリプトがブレークポイントにヒットした場合に適用されます。 ジョブがデバッグ ブレークポイントで停止したら、Debug-Job コマンドレットを実行して、ジョブをデバッグする必要があります。
Windows PowerShell 5.0 では、$PSModulePath の同一フォルダーにある 1 つの Windows PowerShell モジュールの複数のバージョンに対するサポートを実装しています。 必要なバージョンのモジュールを取得するために、RequiredVersion プロパティが ModuleSpecification クラスに追加されました。このプロパティは ModuleVersion プロパティと相互に排他的です。 RequiredVersion が、Get-Module、Import-Module、および Remove-Module コマンドレットの FullyQualifiedName パラメーターの値の一部としてサポートされるようになりました。
Test-ModuleManifest コマンドレットを実行して、モジュール バージョンを検証できるようになりました。
Get-Command コマンドレットの結果が、バージョン列に表示されるようになりました。新しい Version プロパティが CommandInfo クラスに追加されました。 Get-Command では、同じモジュールの複数のバージョンからのコマンドが表示されます。 Version プロパティは、CmdletInfo の派生クラスの一部 (CmdletInfo と ApplicationInfo) でもあります。
新しい Get-ItemPropertyValue コマンドレットでは、ドット表記を使用せずにプロパティの値を取得できます。 たとえば、Windows PowerShell の以前のリリースでは、PowerShellEngine レジストリ キーの Application Base プロパティの値を取得するには、コマンド
$keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine' (Get-ItemProperty -Path $keypath -Name ApplicationBase).ApplicationBase
Windows PowerShell 5.0 以降では、
$keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine' Get-ItemPropertyValue -Path $keypath -Name ApplicationBase
新しい NetworkSwitch モジュールには、スイッチ、仮想 LAN (VLAN)、および基本的なレイヤー 2 ネットワーク スイッチ ポート構成を、Windows Server 2012 R2 (およびそれ以降のリリース) のロゴ認定ネットワーク スイッチに適用できるコマンドレットが含まれています。
FullyQualifiedName パラメーターが、Import-Module コマンドレットと Remove-Module コマンドレットに追加され、1 つのモジュールの複数のバージョンの保存をサポートします。
Save-Help、Update-Help、Import-PSSession、Export-PSSession、および Get-Command に、ModuleSpecification 型の新しいパラメーター、FullyQualifiedModule が追加されました。 このパラメーターを追加して、完全修飾名でモジュールを指定します。
$PSVersionTable.PSVersion の値が 5.0 に更新されました。
Windows PowerShell Desired State Configuration の新機能
Windows PowerShell 言語の機能が強化され、クラスを使用して、Windows PowerShell Desired State Configuration (DSC) のリソースを定義できるようになりました。 Import-DscResource は真の動的キーワードになりました。Windows PowerShell は、DscResource 属性を含むクラスを探して、指定されたモジュールのルート モジュールを解析します。 クラスを使用して DSC リソースを定義できるようになりました。このリソースには、MOF ファイルも、モジュール フォルダー内の DSCResource サブフォルダーも必要ありません。 Windows PowerShell モジュールのファイルには、複数の DSC リソース クラスを含めることができます。
新しいパラメーター、ThrottleLimit が PSDesiredStateConfiguration モジュールの次のコマンドレットに追加されました。 ThrottleLimit パラメーターを追加して、コマンドを同時に実行するターゲット コンピューターまたはデバイスの数を指定します。
- Get-DscConfiguration
- Get-DscConfigurationStatus
- Get-DscLocalConfigurationManager
- Restore-DscConfiguration
- Test-DscConfiguration
- Compare-DscConfiguration
- Publish-DscConfiguration
- Set-DscLocalConfigurationManager
- Start-DscConfiguration
- Update-DscConfiguration
一元化された DSC エラー報告では、詳細なエラー情報がログに記録されるだけでなく、後で分析できるように中央の場所に送信できます。 この中央の場所を使用して、環境内でサーバーに対して発生した DSC 構成エラーを保存することができます。 メタ構成でレポート サーバーが定義されると、すべてのエラーがレポート サーバーに送信され、データベースに保存されます。 ターゲット ノードがプル サーバーから構成を引き出すように構成されているかどうかに関係なく、この機能をセットアップすることができます。
Windows PowerShell ISE の機能向上により、DSC リソースを簡単に作成できるようになりました。 次のことを行うことができます。
- 構成ブロック内やノード ブロック内の空白行に Ctrl+Space を入力して、ブロック内の DSC リソースをすべて一覧表示する。
- 列挙型のリソース プロパティにおけるオート コンプリート。
- 構成内の他のリソース インスタンスに応じた、DSC リソースの DependsOn プロパティにおけるオート コンプリート。
- リソース プロパティ値のタブ補完の強化。
新しい DscLocalConfigurationManager 属性では、メタ構成として構成ブロックを指定します。その構成ブロックを使って DSC ローカル構成マネージャーが構成されます。 この属性は、DSC ローカル構成マネージャーを構成するアイテムのみが含まれるように、構成を制限します。 処理中に、この構成によって *.meta.mof ファイルが生成されます。その後、Set-DscLocalConfigurationManager コマンドレットを実行して、そのファイルは該当するターゲット ノードに送られます。
Windows PowerShell 5.0 で、部分構成ができるようになりました。 ノードに対して構成ドキュメントをフラグメントとして提供できます。 ノードが構成ドキュメントの複数のフラグメントを受信するには、ノードのローカル Configuration Managerを最初に設定して、必要なフラグメントを指定する必要があります。
コンピューター間の同期は、Windows PowerShell 5.0 の DSC での新機能です。 組み込みの WaitFor* リソース (WaitForAll、WaitForAny、WaitForSome) を使用すると、コンピューター間の依存関係を外部のオーケストレーションなしで構成の実行中に指定できます。 これらのリソースは、WS-Man プロトコルで CIM 接続を使用して、ノード間の同期を提供します。 構成は、別のコンピューターの特定のリソースの状態が変更されるまで待機できます。
新しい委任セキュリティ機能である Just Enough Administration (JEA) は、DSC と Windows PowerShell の制限付き実行空間を活用して、意図的であるかどうかに関わらず、従業員によるデータの損失や侵害から企業をセキュリティで保護します。 xJEA DSC リソースをダウンロードできる場所など、JEA に関する詳細については、「Just Enough Administration」をご覧ください。
PSDesiredStateConfiguration モジュールには、次の新しいコマンドレットが追加されました。
- 新しい Get-DscConfigurationStatus コマンドレットは、ターゲット ノードから構成状態に関する高レベルの情報を取得します。 最後の状態、またはすべての構成の状態を取得できます。
- 新しい Compare-DscConfiguration コマンドレットは、指定した構成を 1 つ以上のターゲット ノードの実際の状態と比較します。
- 新しい Publish-DscConfiguration コマンドレットでは、構成の MOF ファイルをターゲット ノードにコピーしますが、その構成は適用しません。 この構成が適用されるのは、次の整合性パス中、または Update-DscConfiguration コマンドレットの実行時です。
- 新しい Test-DscConfiguration コマンドレットを使用すると、結果の構成が必要な構成と一致することを確認して、構成が必要な構成と一致する場合は True を、実際の構成が必要な構成と一致しない場合は False を返すようにできます。
- 新しい Update-DscConfiguration コマンドレットは、構成が処理されるようにします。 ローカル構成マネージャーがプル モードの場合は、コマンドレットは、構成を適用する前にプル サーバーから構成を取得します。
Windows PowerShell ISE の新機能
- Enter-PSSession を実行して、編集するファイルを格納しているコンピューターでリモート セッションを開始し、 Windows PowerShell を実行することで、ISE のローカル コピーでリモート Windows PowerShell スクリプトと
PSEdit <path and file name on the remote computer>
ファイルを編集できるようになりました。 この機能を使用すると、Windows PowerShell ISE を実行できない Windows Server の Server Core インストール オプションに保存されている Windows PowerShell ファイルの編集が簡単になります。 - Start-Transcript コマンドレットが Windows PowerShell ISE でサポートされるようになりました。
- Windows PowerShell ISE でリモート スクリプトをデバッグできるようになりました。
- 新しいメニュー コマンド、Break All (Ctrl+B) は、ローカルとリモートで実行中の両方のスクリプトを中断し、デバッガーに移ります。
Windows PowerShell Web サービス (Management OData IIS 拡張機能) の新機能
- Windows PowerShell 5.0 以降では、Export-ODataEndpointProxy コマンドレットを実行することで、特定の OData エンドポイントによって公開される機能に基づいて一連のWindows PowerShell コマンドレットを生成できます。
Windows PowerShell 5.0 での主なバグ修正
- Windows PowerShell 5.0 には、新しい COM 実装が含まれます。この実装により、COM オブジェクトを操作する場合のパフォーマンスが大幅に向上します。
Windows PowerShell 5.0 の詳細については、次の Web サイトを参照してください。
関連項目
about_Desired_State_Configuration
キーワード
Windows PowerShell 5.0 の新機能