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ó MyDscConfigurationneve .
  • 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-PC1szá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-DSCResourcekapcsolatos 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: