2017-02-16 9 views
0

Есть ли опция передать значения в блок $configdata (использовать для -ConfigurationData) в качестве параметра/переменной?

Что-то вроде:

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

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

ответ

0

Данные конфигурации, является способ передачи значений конфигурации.

С другой стороны, данные конфигурации сами по себе являются не чем иным, а хэш-таблицей. Вы можете отредактировать его любым способом.

Рассмотрим следующий пример.

Вы находитесь в режиме Push-и имеют следующую конфигурацию:

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.