about_DesiredStateConfiguration

適用対象: Windows PowerShell 4.0

トピック

about_Desired_State_Configuration

概要

Windows PowerShell® Desired State Configuration (DSC) 機能について簡単に紹介します。

詳細説明

DSC は Windows PowerShell の管理のプラットフォームです。ソフトウェア サービス、およびこれらのサービスを実行する環境の構成データの展開と管理を可能にします。DSC は、ソフトウェア環境の状態をどのように構成するかを宣言によって指定するために使用可能な、Windows PowerShell の言語拡張機能、新しいコマンドレット、およびリソースのセットです。

DSC は Windows PowerShell 4.0 で導入されました。

DSC の詳細については、TechNet ライブラリの「Windows PowerShell の必要な状態の構成」(https://go.microsoft.com/fwlink/?LinkId=311940) を参照してください。

DSC の使用方法

DSC を使用して環境を構成するには、まず、Configuration キーワードに続いて識別子を使用し、Windows PowerShell スクリプト ブロックを定義します。これにはブロックを区切る中かっこのペアが続きます。構成ブロックの中で、環境内の各ノード (コンピューター) に必要な構成状態を指定するノード ブロックを定義できます。ノード ブロックは、Node キーワードで始まり、変数を指定できる対象コンピューターの名前が続きます。コンピューター名の後には、ノード ブロックを区切る中かっこが来ます。ノード ブロック内で、特定のリソースを構成するためのリソース ブロックを定義できます。リソース ブロックは、次の例のようにリソースのタイプ名で始まり、そのブロックを指定する識別子が続き、ブロックを区切る中かっこが続きます。

Configuration MyWebConfig
    {
       # Parameters are optional
       param ($MachineName, $WebsiteFilePath)

       # A Configuration block can have one or more Node blocks
       Node $MachineName
       {
          # Next, specify one or more resource blocks
          # WindowsFeature is one of the resources you can use in a Node block
          # This example ensures the Web Server (IIS) role is installed
          WindowsFeature IIS
          {
             # To ensure that the role is not installed, set Ensure to \"Absent\"
              Ensure = "Present" 
              Name = "Web-Server" # Use the Name property from Get-WindowsFeature  
          }

          # You can use the File resource to create files and folders
          # \"WebDirectory\" is the name you want to use to refer to this instance
          File WebDirectory
          {
             Ensure = "Present"  # You can also set Ensure to "Absent“
             Type = "Directory“ # Default is “File”
             Recurse = $true
             SourcePath = $WebsiteFilePath
             DestinationPath = "C:\inetpub\wwwroot"
            
             # Ensure that the IIS block is successfully run first before
             # configuring this resource
             Requires = "[WindowsFeature]IIS"  # Use Requires for dependencies     
          }
       }
    }

構成を作成するには、Windows PowerShell 関数を呼び出す場合と同様に、Configuration ブロックを呼び出し、定義した任意の必要なパラメーターを渡します (上記の例では 2 つ)。たとえば、このケースでは次のようになります。

    MyWebConfig -MachineName "TestMachine" –WebsiteFilePath "\\filesrv\WebFiles" `
         -OutputPath "C:\Windows\system32\temp" # OutputPath is optional

これにより、指定したパスにノードごとの MOF ファイルが生成されます。これらの MOF ファイルは、各ノードの望ましい構成を指定します。ここで、次のコマンドレットを使用して、構成 MOF ファイルを解析し、各ノードに対応する構成を送信して、これらの構成を有効にします。

    Start-DscConfiguration –Verbose -Wait -Path "C:\Windows\system32\temp"

DSC を使用した構成状態の維持

DSC では、構成はべき等です。これは、DSC を使用して同じ構成を複数回指定した場合、結果として得られる構成の状態は常に同じであることを意味します。このため、環境内の任意のノードが構成の望ましい状態から離れていると考えられる場合、望ましい状態に戻すために再度同じ DSC 構成を有効にすることができます。望ましい状態から離れているリソースに対処するためにのみ構成スクリプトを変更する必要はありません。

次の例は、特定のノードで実際の構成状態がそのノードで有効にした最後の DSC 構成から離れたかどうかを確認する方法を示しています。この例では、ローカル コンピューターの構成をチェックします。

    $session = New-CimSession -ComputerName "localhost"
    Test-DscConfiguration -CimSession $session 

組み込みの DSC リソース

DSC には、構成スクリプトで使用できる、次に示す一連の組み込みのリソースが用意されています。レジストリ、スクリプト、アーカイブ、ファイル、WindowsFeature、パッケージ、環境、グループ、ユーザー、ログ、サービス、および WindowsProcess です。上記の例は、ファイルおよび WindowsFeature リソースを使用する方法を示します。特定のリソースで使用できるすべてのプロパティを表示するには、Windows PowerShell ISE の構成スクリプト内でリソース キーワード (たとえば、ファイル) にカーソルを置き、Ctrl キーを押しながら、Space キーを押します。

関連項目

"Windows PowerShell の必要な状態の構成"

(https://go.microsoft.com/fwlink/?LinkId=311940)