Powershell DSC配置:安装选择性Windows功能

时间:2017-08-02 17:35:47

标签: powershell powershell-v4.0 dsc

我有PowerShell 4并且想安装选择性Windows功能,例如只安装文件服务器FS-FileServer和文件服务器资源管理器FS-Resource-Manager。

  

[X]文件和存储服务FileAndStorage-Services已安装             [X]文件服务器FS-FileServer已安装             [X]安装文件服务器资源管理器FS-Resource-Manager

为此,我的示例代码如下所示

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 个答案:

答案 0 :(得分:1)

你应该使用版本5,正如TheMadTechnician所说,但你可以通过在循环中生成配置来对功能进行分组:

Configuration JSwebDeploy2
{ 
   Import-DscResource -ModuleName PSDesiredStateConfiguration

    node "localhost"
    { 

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

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

JSwebDeploy2

使用您选择的循环结构,可能您想要参数化配置而不是硬编码数组,可能使用-ConfigurationData等,但概念是相同的:使用循环和变量时你建立/生成你的配置。

这只是一个附注,但版本5具有更多用于调试和测试配置的功能,包括Invoke-DscResource cmdlet;非常有用。

但要注意WindowsFeatureSet是复合资源,该特定cmdlet不支持该资源。