$ configdata和参数

时间:2017-02-16 11:43:19

标签: powershell dsc

是否有任何选项可以将值传递给$configdata块(用于-ConfigurationData)作为参数/变量?

类似的东西:

Configuration Config1
{
...
...
...
}

$configdata = @{
    AllNodes = @(
    @{
        NodeName = servername
        CertificateFile = "$path\CertFile.cer"
        Thumbprint = $CertThumb
    }

1 个答案:

答案 0 :(得分:0)

配置数据 是将值传递给配置的方法。

另一方面,配置数据本身不过是一个哈希表。您可以以任何您喜欢的方式进行编辑。

请考虑以下示例。

您处于推送模式并具有以下配置:

Configuration MyFileCreator
{

    Import-DscResource –ModuleName 'PSDesiredStateConfiguration'

   Node localhost
   {

        File sampleFile
        {
            Ensure          = $ConfigurationData.fileEnsure
            Type            = 'File'
            DestinationPath = 'c:\temp\file.txt'
            Force           = $true
        }

        # Configure LCM
        LocalConfigurationManager
        {
            ConfigurationMode  = 'ApplyAndAutoCorrect'
            RefreshMode        = 'PUSH'
            RebootNodeIfNeeded = $False
        }

    }
}

您看到我使用了$ ConfigurationData.fileEnsure。此变量引用我在ConfigurationData中设置的值。

我的ConfigurationData可能如下所示:

$myConfigurationData = @{
    AllNodes = @()
    fileEnsure      = 'absent'
}

如果我想将配置应用于配置数据,我可以运行以下命令:

MyFileCreator -ConfigurationData  $myConfigurationData
Start-DscConfiguration -ComputerName localhost .\MyFileCreator

如果我想更改配置数据,我只需修改哈希表并再次应用我的配置:

$myConfigurationData.fileEnsure = 'present'
MyFileCreator -ConfigurationData  $myConfigurationData
Start-DscConfiguration -ComputerName localhost .\MyFileCreator -Force

您可以在official MSDN Documentation中了解有关配置和环境数据背后的想法的更多信息。