DSC-konfigurációk
Érintett kiadások: Windows PowerShell 4.0, Windows PowerShell 5.0
A DSC-konfigurációk olyan PowerShell-szkriptek, amelyek speciális függvénytípust határoznak meg. Konfiguráció meghatározásához használja a PowerShell Configuration (Konfigurálás) kulcsszóját.
Configuration MyDscConfiguration {
Node "TEST-PC1" {
WindowsFeature MyFeatureInstance {
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance {
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
Mentse a szkriptet fájlként .ps1
.
A konfiguráció szintaxisa
A konfigurációs szkript a következő részekből áll:
- A Konfiguráció blokk. Ez a legkülső szkriptblokk. Ezt a Configuration kulcsszóval és egy név megadásával határozhatja meg. Ebben az esetben a konfiguráció
MyDscConfiguration
neve . - Egy vagy több Csomópontblokk . Ezek határozzák meg a konfigurálni kívánt csomópontokat (számítógépeket vagy virtuális gépeket).
A fenti konfigurációban van egy csomópontblokk , amely egy nevű
TEST-PC1
számítógépet céloz meg. A Csomópont blokk több számítógépnevet is elfogadhat. - Egy vagy több erőforrásblokk. Itt állítja be a konfiguráció a konfigurálni kívánt erőforrások tulajdonságait. Ebben az esetben két erőforrásblokk van, amelyek mindegyike a WindowsFeature erőforrást hívja meg.
Megjegyzés
A WindowsFeature DSC-erőforrás csak Windows Server rendszerű számítógépeken érhető el. Az olyan ügyfélszámítógépek esetében, mint a Windows 11, ehelyett a WindowsOptionalFeature-t kell használnia. További információ : A PSDscResources dokumentációjának "WindowsOptionalFeature" szakasza.
A Konfiguráció blokkon belül bármit elvégezhet, amit egy PowerShell-függvényben általában meg tud tenni. Ha az előző példában nem szeretné a célszámítógép nevét kódolni a konfigurációban, hozzáadhat egy paramétert a csomópont nevéhez.
Ebben a példában úgy adhatja meg a csomópont nevét, hogy a konfiguráció lefordításakor a ComputerName paraméterként adja meg. A név alapértelmezés szerint a következő: localhost
.
Configuration MyDscConfiguration
{
param
(
[string[]]$ComputerName='localhost'
)
Node $ComputerName
{
WindowsFeature MyFeatureInstance
{
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance
{
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
A Csomópont blokk több számítógépnevet is elfogadhat. A fenti példában használhatja a -ComputerName
paramétert, vagy átadhatja a számítógépek vesszővel tagolt listáját közvetlenül a Csomópont blokknak.
MyDscConfiguration -ComputerName "localhost", "Server01"
Amikor számítógéplistát ad meg a Csomópont blokkhoz, a konfiguráción belül tömb jelölést kell használnia.
Configuration MyDscConfiguration
{
Node @('localhost', 'Server01')
{
WindowsFeature MyFeatureInstance
{
Ensure = 'Present'
Name = 'RSAT'
}
WindowsFeature My2ndFeatureInstance
{
Ensure = 'Present'
Name = 'Bitlocker'
}
}
}
MyDscConfiguration
A konfiguráció összeállítása
Mielőtt konfigurálást végezhet, le kell fordítania azt egy MOF-dokumentumba. Ezt úgy teheti meg, hogy meghívja a konfigurációt, mintha egy PowerShell-függvényt hívna meg. A példa utolsó sora, amely csak a konfiguráció nevét tartalmazza, meghívja a konfigurációt.
Megjegyzés
Konfiguráció meghívásához a függvénynek globális hatókörben kell lennie (mint minden más PowerShell-függvény esetében). Ezt a szkript "dot-sourcing" használatával, vagy a konfigurációs szkript F5 használatával történő futtatásával vagy az ISE Szkript futtatása gombjára kattintva teheti meg. A szkript pontforrásának létrehozásához futtassa a parancsot . .\myConfig.ps1
, ahol myConfig.ps1
a konfigurációt tartalmazó szkriptfájl neve.
Amikor meghívja a konfigurációt, az a következőket teszi:
- Az összes változó feloldása
- Létrehoz egy mappát az aktuális könyvtárban, amelynek neve megegyezik a konfiguráció nevével.
- Létrehoz egy NodeName.mof nevű fájlt az új könyvtárban, ahol a NodeName a konfiguráció célcsomópontjának neve. Ha több csomópont is van, minden csomóponthoz létrejön egy MOF-fájl.
Megjegyzés
Az MOF-fájl tartalmazza a célcsomópont összes konfigurációs információját. Emiatt fontos, hogy biztonságos legyen. További információ: Az MOF-fájl biztonságossá tétele.
A fenti első konfiguráció összeállítása a következő mappastruktúrát eredményezi:
. .\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
Ha a konfiguráció olyan paramétert vesz fel, mint a második példában, azt a fordításkor kell megadni. Így nézne ki:
. .\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
Új erőforrások használata a Saját konfigurációban
Ha az előző példákat futtatta, észrevehette, hogy a rendszer figyelmeztette, hogy egy erőforrást használ anélkül, hogy explicit módon importálná. A DSC jelenleg 12 erőforrással szolgál a PSDesiredStateConfiguration modul részeként.
A Get-DscResource parancsmaggal meghatározhatja, hogy mely erőforrások vannak telepítve a rendszeren, és melyeket használhatja az LCM.
Miután ezeket a modulokat elhelyezte $env:PSModulePath
, és a Get-DscResource megfelelően felismerte őket, továbbra is be kell tölteni őket a konfigurációba.
Az Import-DscResource egy dinamikus kulcsszó, amely csak egy konfigurációs blokkon belül ismerhető fel, nem parancsmag. Az Import-DscResource két paramétert támogat:
- A ModuleName az Import-DscResource használatának ajánlott módja. Elfogadja az importálni kívánt erőforrásokat tartalmazó modul nevét (valamint a modulnevek sztringtömbét).
- A név az importálni kívánt erőforrás neve. Ez nem a Get-DscResource által "Névként" visszaadott rövid név, hanem az erőforrásséma definiálásakor használt osztálynév (a Get-DscResourceResourceType-ként adja vissza).
A használatával Import-DSCResource
kapcsolatos további információkért lásd: Az Import-DSCResource használata
PowerShell v4 és v5 különbségek
A DSC-erőforrásokat a PowerShell 4.0-ban kell tárolni. További információ: Erőforrás helye.
Lásd még:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: