2017-08-02 10 views
1

私はpowershell 4を持っており、例えばFile Server FS-FileServerとFile Server Resource Manager FS-Resource-Managerをインストールするなどの選択的なWindows機能をインストールしたいと考えています。Powershell DSCの設定:選択的なWindowsのインストール機能

[X]ファイルサービスとストレージサービスFileAndStorage-サービスがインストールさ ファイルサーバFS-ファイルサーバーインストール[X]は [X]サーバーリソースマネージャFS-資源マネージャは、このために

をインストールされたファイルの私サンプルコードは次のようになります

Configuration JSwebDeploy2 
{ 
    Import-DscResource -ModuleName PSDesiredStateConfiguration 

    node "localhost" 
    { 

     WindowsFeature FS-FileServer 
     { 
      Name = "FS-FileServer" 
      Ensure = 'Present' 

     } 
      WindowsFeature FS-Resource-Manager 
     { 
      Name = "FS-Resource-Manager" 
      Ensure = 'Present' 

     } 
    } 
} 

JSwebDeploy2 

これは正しい処理方法ですか、すべてのサブ機能をまとめてグループ化する方法ですか?私はWindowsFeatureSetに出くわしましたが、それはPowershell 5.0以降でしか使用できません。

+1

Desired State Configurationを取得する場合は、Windows Management Frameworkの最新バージョンにアップグレードすることをお勧めします。これにより、少なくともPowerShell 5に移行することができます。 – TheMadTechnician

答えて

1

TheMadTechnicianが言ったようにあなたは、一般的にはバージョン5を使用する必要がありますが、あなたはグループ機能、のように、ループ内で設定を生成することによってできます。

Configuration JSwebDeploy2 
{ 
    Import-DscResource -ModuleName PSDesiredStateConfiguration 

    node "localhost" 
    { 

     @('FS-FileServer','FS-Resource-Manager').ForEach({ 

      WindowsFeature $_ 
      { 
       Name = $_ 
       Ensure = 'Present' 
      } 
     } 
    } 
} 

JSwebDeploy2 

選択のあなたのループ構造を使用し、おそらく、配列をハードコードする代わりにconfigをパラメータ化したいかもしれません。おそらく-ConfigurationDataなどを使用しますが、コンセプトは同じです:設定をビルド/生成するときにループと変数を使用します。

これは単なるメモですが、バージョン5には、Invoke-DscResourceコマンドレットを含む、構成のデバッグとテストのための多くの機能があります。非常に便利。

ただし、WindowsFeatureSetは、特定のコマンドレットではサポートされていない複合リソースであることに注意してください。

+0

提案をいただきありがとうございました。 WindowsFeatureSetでサポートされていない特定のコマンドレットについて詳しく教えてください。 – kumar

+0

許可されている場合は、powershell 5を使用することをお勧めします。 1つは別のものに依存している2つのforeachグループがあるところで提案を提供できますか?私が1つのforeachグループを他のグループの下に置くと、それらが順番に実行されることが保証されますか? – kumar

+0

@kumar私が知る限り、 'Composite'リソースをサポートしていないのは' Invoke-DscResource'だけです。これは、通常のDSCでの使用には問題ありません。 ChefやPuppetのような別の構成管理システムでDSCリソースを使用すると、その実装で 'Invoke-DscResource'が使用される可能性がありますが、それについては確信していません。また、 'Get-DscResource'を使って、システム上で利用可能なリソースとそのタイプを知ることができます。すべての複合リソースを表示するには: 'Get-DscResource | ?あなたの2番目の質問のために{$ _。ImplementedAs -eq 'Composite'} ' – briantist

関連する問題