是否有任何选项可以将值传递给$configdata
块(用于-ConfigurationData
)作为参数/变量?
类似的东西:
Configuration Config1
{
...
...
...
}
$configdata = @{
AllNodes = @(
@{
NodeName = servername
CertificateFile = "$path\CertFile.cer"
Thumbprint = $CertThumb
}
答案 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中了解有关配置和环境数据背后的想法的更多信息。