次の方法で共有


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 Preview をインストールする前に、ダウンロードの詳細を読み、すべてのシステム要件を満たしていることを確認してください。

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 ファイルを更新したりできるコマンドレットが含まれています。

  • 新しいモジュールである OneGet を使用すると、インターネット上でソフトウェア パッケージを検出してインストールできます。 OneGet モジュールは、既存のパッケージ マネージャー (パッケージ プロバイダーとも呼ばれます) のマネージャーまたはマルチプレクサーであり、Windows パッケージ管理を 1 つの 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 など) に適用されるように改善されました。 文字起こしオプション (システム全体のトランスクリプトの有効化を含む) は、管理用テンプレート/Windows コンポーネント/Windows PowerShell にある [PowerShell 文字起こしグループポリシーを有効にする] 設定を有効にすることで構成できます。

  • 新しい詳細なスクリプト トレース機能を使用すると、システム上での Windows PowerShell スクリプトの使用の詳細な追跡と分析が可能になります。 詳細なスクリプト トレースを有効にすると、Windows PowerShell はすべてのスクリプト ブロックを Event Tracing for Windows (ETW) イベント ログ Microsoft-Windows-PowerShell/Operational に記録します。

  • Windows PowerShell 5.0 以降、新しい暗号化メッセージ構文コマンドレットは、 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 を入力またはアタッチし、Get-Runspace を実行してプロセス内のアクティブな実行空間を返します。 Exit-PSHostProcess を実行して、プロセス内のスクリプトのデバッグが完了したら、プロセスからデタッチします。

  • 新しい Wait-Debugger コマンドレットが Microsoft.PowerShell.Utility モジュールに追加されました。 Wait-Debugger を実行して、スクリプト内の次のステートメントを実行する前にデバッガーでスクリプトを停止できます。

  • Windows PowerShell ワークフロー デバッガーでコマンド補完またはタブ補完がサポートされるようになり、入れ子になったワークフロー関数をデバッグできるようになりました。 これで、Ctrl+Break を押して、実行中のスクリプト、ローカルセッションとリモートセッションの両方、およびワークフロースクリプトでデバッガに入ることができます。

  • Microsoft.PowerShell.Core モジュールに Debug-Job コマンドレットが追加され、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 パラメーターは、1 つのモジュールの複数のバージョンの格納をサポートするために、Import-Module コマンドレットと Remove-Module コマンドレットに追加されました。

  • 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 リソースの作成が容易になります。 これで、次の操作を実行できるようになりました。

    • 構成ブロックまたはノード ブロック内のすべての DSC リソースを一覧表示するには、ブロック内の空白行に Ctrl+Space キーを押します。
    • 列挙型のリソース プロパティの自動補完。
    • DSC リソースの DependsOn プロパティの自動更新 (構成内の他のリソース インスタンスに基づく)。
    • リソースプロパティ値のタブ補完が改善されました。
  • 新しい DscLocalConfigurationManager 属性は、構成ブロックをメタ構成として指定し、DSC Local Configuration Manager の構成に使用されます。 この属性は、DSC Local Configuration Manager を構成する項目のみを含むように構成を制限します。 処理中に、この構成は *.meta.mof ファイルを生成し、Set-DscLocalConfigurationManager コマンドレットを実行して適切なターゲット ノードに送信します。

  • Windows PowerShell 5.0 では、部分的な構成が可能になりました。 設定文書は、フラグメント単位でノードに配信できます。 ノードが設定ドキュメントの複数のフラグメントを受信するには、まずノードの Local Configuration Manager を設定して、必要なフラグメントを指定する必要があります。

  • コンピューター間の同期は、Windows PowerShell 5.0 の DSC の新機能です。 組み込みの WaitFor* リソース (WaitForAll、WaitForAny、および WaitForSome) を使用すると、外部オーケストレーションを使用せずに、構成の実行中にコンピューター間の依存関係を指定できるようになりました。 これらのリソースは、WS-Man プロトコルを介した CIM 接続を使用して、ノード間の同期を提供します。 構成は、別のコンピューターの特定のリソースの状態が変化するのを待つことができます。

  • 新しい委任セキュリティ機能である Just Enough Administration (JEA) は、DSC と Windows PowerShell の制約付き実行空間を活用して、意図的または意図的でない従業員によるデータ損失や侵害から企業を保護します。 JEA の詳細 (xJEA DSC リソースをダウンロードできる場所など) については、「 Just Enough Administration」を参照してください。

  • 次の新しいコマンドレットが PSDesiredStateConfiguration モジュールに追加されました。

    • 新しい Get-DscConfigurationStatus コマンドレットは、ターゲット ノードから構成状態に関する高レベルの情報を取得します。 最後の設定またはすべての設定のステータスを取得できます。
    • 新しい Compare-DscConfiguration コマンドレットは、指定した構成と 1 つ以上のターゲット ノードの実際の状態を比較します。
    • 新しい Publish-DscConfiguration コマンドレットは、構成 MOF ファイルをターゲット ノードにコピーしますが、構成は適用されません。 構成は、次の整合性パス中、または Update-DscConfiguration コマンドレットを実行するときに適用されます。
    • 新しい Test-DscConfiguration コマンドレットを使用すると、結果の構成が目的の構成と一致することを確認し、構成が目的の構成と一致する場合は True を返し、実際の構成が目的の構成と一致しない場合は False を返します。
    • 新しい Update-DscConfiguration コマンドレットは、構成を強制的に処理します。 Local Configuration Manager がプル モードの場合、コマンドレットはプル サーバーから構成を取得してから適用します。

Windows PowerShell ISE の新機能

  • Windows PowerShell ISE のローカル コピーでリモート Windows PowerShell スクリプトとファイルを編集できるようになりました。これには、編集するファイルを格納しているコンピューターで Enter-PSSession を実行してリモート セッションを開始し、 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 でリモート スクリプトをデバッグできるようになりました。
  • 新しいメニュー コマンドである [すべて中断] (Ctrl+B) は、ローカルとリモートで実行中のスクリプトの両方のデバッガーに割り込まれます。

Windows PowerShell Web サービス (管理 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_Classes

about_Debuggers

about_Desired_State_Configuration

更新可能なヘルプについて

保存ヘルプ

取得モジュール

デバッグジョブ

アップデートヘルプ

取得プロセス

Remove-Computer (コンピュータの削除)

Set-ExecutionPolicy(実行ポリシーの設定)

コンピュータの追加

ConvertFrom-String (文字列から変換)

Invoke-RestMethod の

Set-JobTrigger (ジョブトリガーの設定)

Set-ScheduledJob (スケジュール済みジョブの設定)

新しいジョブトリガー

スケジュールされたジョブの登録

Enable-JobTrigger (ジョブ トリガーの有効化)

Disable-JobTrigger (ジョブトリガーの無効化)

キーワード

Windows PowerShell 5.0 の新機能