Konfigurace DSC
Platí pro: Windows PowerShell 4.0, Windows PowerShell 5.0
Konfigurace DSC jsou skripty PowerShellu, které definují speciální typ funkce. K definování konfigurace použijete klíčové slovo PowerShellu Configuration.
Configuration MyDscConfiguration {
Node "TEST-PC1" {
WindowsFeature MyFeatureInstance {
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance {
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
Uložte skript jako .ps1
soubor.
Syntaxe konfigurace
Konfigurační skript se skládá z následujících částí:
- Blok konfigurace . Toto je nejkrajnější blok skriptu. Definujete ho pomocí klíčového slova Configuration a zadáním názvu. V tomto případě je
MyDscConfiguration
název konfigurace . - Jeden nebo více bloků uzlu . Ty definují uzly (počítače nebo virtuální počítače), které konfigurujete.
Ve výše uvedené konfiguraci existuje jeden blok uzlu , který cílí na počítač s názvem
TEST-PC1
. Blok uzlu může přijímat více názvů počítačů. - Jeden nebo více bloků prostředků. Tady konfigurace nastavuje vlastnosti pro prostředky, které konfiguruje. V tomto případě existují dva bloky prostředků, z nichž každý volá prostředek WindowsFeature .
Poznámka
Prostředek WindowsFeature DSC je k dispozici pouze na počítačích s Windows Serverem. Pro počítače s klientským operačním systémem, jako je Windows 11, musíte místo toho použít WindowsOptionalFeature. Další informace najdete v části WindowsOptionalFeature v dokumentaci PSDscResources.
V rámci bloku konfigurace můžete ve funkci PowerShellu dělat cokoliv, co byste normálně mohli. Pokud jste v předchozím příkladu nechtěli pevně zakódovat název cílového počítače v konfiguraci, mohli byste přidat parametr pro název uzlu.
V tomto příkladu zadáte název uzlu tak, že ho předáte jako parametr ComputerName při kompilaci konfigurace. Výchozí název je localhost
.
Configuration MyDscConfiguration
{
param
(
[string[]]$ComputerName='localhost'
)
Node $ComputerName
{
WindowsFeature MyFeatureInstance
{
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance
{
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
Blok uzlu může také přijímat více názvů počítačů. Ve výše uvedeném příkladu můžete buď použít -ComputerName
parametr, nebo předat čárkami oddělený seznam počítačů přímo do bloku Node .
MyDscConfiguration -ComputerName "localhost", "Server01"
Při zadávání seznamu počítačů do bloku uzlu musíte v rámci konfigurace použít maticovou notaci.
Configuration MyDscConfiguration
{
Node @('localhost', 'Server01')
{
WindowsFeature MyFeatureInstance
{
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance
{
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
Kompilace konfigurace
Než budete moct provést konfiguraci, musíte ji zkompilovat do dokumentu MOF. Provedete to voláním konfigurace, jako byste volali funkci PowerShellu. Poslední řádek příkladu, který obsahuje pouze název konfigurace, volá konfiguraci.
Poznámka
Pokud chcete volat konfiguraci, musí být funkce v globálním rozsahu (stejně jako u jakékoli jiné funkce PowerShellu). Můžete to provést buď pomocí skriptu "dot-sourcing", nebo spuštěním konfiguračního skriptu pomocí klávesy F5 nebo kliknutím na tlačítko Spustit skript v ISE. Pokud chcete skript dot-source, spusťte příkaz . .\myConfig.ps1
, kde myConfig.ps1
je název souboru skriptu, který obsahuje vaši konfiguraci.
Při volání konfigurace:
- Řeší všechny proměnné.
- Vytvoří složku v aktuálním adresáři se stejným názvem jako konfigurace.
- Vytvoří soubor s názvem NodeName.mof v novém adresáři, kde NodeName je název cílového uzlu konfigurace. Pokud existuje více než jeden uzel, vytvoří se pro každý uzel soubor MOF.
Poznámka
Soubor MOF obsahuje všechny informace o konfiguraci cílového uzlu. Z tohoto důvodu je důležité ho zabezpečit. Další informace najdete v tématu Zabezpečení souboru MOF.
Kompilace první konfigurace výše má za následek následující strukturu složek:
. .\MyDscConfiguration.ps1
MyDscConfiguration
Directory: C:\users\default\Documents\DSC Configurations\MyDscConfiguration
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/23/2015 4:32 PM 2842 localhost.mof
Pokud konfigurace přijímá parametr, jako v druhém příkladu, který musí být poskytnut v době kompilace. Takto by to vypadalo:
. .\MyDscConfiguration.ps1
MyDscConfiguration -ComputerName 'MyTestNode'
Directory: C:\users\default\Documents\DSC Configurations\MyDscConfiguration
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/23/2015 4:32 PM 2842 MyTestNode.mof
Použití nových prostředků ve vaší konfiguraci
Pokud jste spustili předchozí příklady, možná jste si všimli, že jste byli upozorněni, že používáte prostředek, aniž byste ho explicitně importovali. V současnosti se DSC dodává s 12 prostředky v rámci modulu PSDesiredStateConfiguration.
Pomocí rutiny Get-DscResource můžete určit, jaké prostředky jsou nainstalované v systému a dostupné pro použití nástrojem LCM.
Jakmile jsou tyto moduly umístěny v $env:PSModulePath
a jsou správně rozpoznány get-DscResource, musí být stále načteny v rámci vaší konfigurace.
Import-DscResource je dynamické klíčové slovo, které lze rozpoznat pouze v rámci bloku konfigurace , nejedná se o rutinu. Import-DscResource podporuje dva parametry:
- ModuleName je doporučený způsob použití Import-DscResource. Přijímá název modulu, který obsahuje prostředky, které se mají importovat (a pole řetězců s názvy modulů).
- Název je název prostředku, který se má importovat. Toto není popisný název vrácený jako "Název" get-DscResource, ale název třídy použitý při definování schématu prostředku (vrácen jako ResourceTypeGet-DscResource).
Další informace o používání Import-DSCResource
najdete v tématu Použití Import-DSCResource.
Rozdíly v PowerShellu v4 a v5
Existují rozdíly v tom, kde je potřeba ukládat prostředky DSC v PowerShellu 4.0. Další informace najdete v tématu Umístění prostředku.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat Problémy GitHubu jako mechanismus zpětné vazby pro obsah a nahradíme ho novým systémem zpětné vazby. Další informace najdete tady:Odeslat a zobrazit názory pro