DSC-konfigurációkDSC Configurations

A következőkre vonatkozik: Windows PowerShell 4,0, Windows PowerShell 5,0Applies To: Windows PowerShell 4.0, Windows PowerShell 5.0

A DSC-konfigurációk olyan PowerShell-parancsfájlok, amelyek speciális típusú függvényt határoznak meg.DSC configurations are PowerShell scripts that define a special type of function. Konfiguráció definiálásához használja a PowerShell-kulcsszó konfigurációját .To define a configuration, you use the PowerShell keyword Configuration .

Configuration MyDscConfiguration {
    Node "TEST-PC1" {
        WindowsFeature MyFeatureInstance {
            Ensure = 'Present'
            Name = 'RSAT'
        }
        WindowsFeature My2ndFeatureInstance {
            Ensure = 'Present'
            Name = 'Bitlocker'
        }
    }
}
MyDscConfiguration

Mentse a parancsfájlt .ps1 fájlként.Save the script as a .ps1 file.

A konfiguráció szintaxisaConfiguration syntax

A konfigurációs parancsfájlok a következő részből állnak:A configuration script consists of the following parts:

  • A konfigurációs blokk.The Configuration block. Ez a legkülső szkript blokkja.This is the outermost script block. Ezt a konfigurációs kulcsszó használatával definiálhatja, és megadhatja a nevet.You define it by using the Configuration keyword and providing a name. Ebben az esetben a konfiguráció neve "MyDscConfiguration".In this case, the name of the configuration is "MyDscConfiguration".
  • Egy vagy több csomópont -blokk.One or more Node blocks. Ezek határozzák meg a konfigurálni kívánt csomópontokat (számítógépeket vagy virtuális gépeket).These define the nodes (computers or VMs) that you are configuring. A fenti konfigurációban egy csomópont -blokk található, amely a "test-PC1" nevű számítógépet célozza meg.In the above configuration, there is one Node block that targets a computer named "TEST-PC1". A csomópont-blokk több számítógépnevet is képes fogadni.The Node block can accept multiple computer names.
  • Egy vagy több erőforrás-blokk.One or more resource blocks. Itt állítható be a konfigurálás alatt álló erőforrások tulajdonságai.This is where the configuration sets the properties for the resources that it is configuring. Ebben az esetben két erőforrás-blokk létezik, amelyek mindegyike a "WindowsFeature" erőforrást hívja meg.In this case, there are two resource blocks, each of which call the "WindowsFeature" resource.

Egy konfigurációs blokkon belül bármit megtehet, amit általában egy PowerShell-függvényben használhat.Within a Configuration block, you can do anything that you normally could in a PowerShell function. Az előző példában például ha nem szeretné, hogy a célszámítógép neve a konfigurációban legyen, hozzáadhat egy paramétert a csomópont nevéhez:For example, in the previous example, if you didn't want to hard code the name of the target computer in the configuration, you could add a parameter for the node name:

Ebben a példában a csomópont nevét kell megadnia, ha a konfiguráció fordításakor a számítógépnév paramétert adja meg.In this example, you specify the name of the node by passing it as the ComputerName parameter when you compile the configuration. A név alapértelmezett értéke "localhost".The name defaults to "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épnév is elfogadását is elvégezheti.The Node block can also accept multiple computer names. A fenti példában használhatja a -ComputerName paramétert, vagy a számítógépek vesszővel tagolt listáját is átadhatja közvetlenül a csomópont -blokknak.In the above example, you can either use the -ComputerName parameter, or pass a comma-separated list of computers directly to the Node block.

MyDscConfiguration -ComputerName "localhost", "Server01"

Ha a csomópont -blokkhoz tartozó számítógépek listáját megadja egy konfigurációból, a tömbös jelölést kell használnia.When specifying a list of computers to the Node block, from within a Configuration, you need to use array-notation.

Configuration MyDscConfiguration
{
    Node @('localhost', 'Server01')
    {
        WindowsFeature MyFeatureInstance
        {
            Ensure = 'Present'
            Name = 'RSAT'
        }

        WindowsFeature My2ndFeatureInstance
        {
            Ensure = 'Present'
            Name = 'Bitlocker'
        }
    }
}

MyDscConfiguration

A konfiguráció fordításaCompiling the configuration

A konfigurálás megkezdése előtt le kell fordítania egy MOF-dokumentumba.Before you can enact a configuration, you have to compile it into a MOF document. Ezt úgy teheti meg, hogy úgy hívja meg a konfigurációt, mint egy PowerShell-függvényt.You do this by calling the configuration like you would call a PowerShell function. A csak a konfiguráció nevét tartalmazó példa utolsó sora hívja meg a konfigurációt.The last line of the example containing only the name of the configuration, calls the configuration.

Megjegyzés

Egy konfiguráció meghívásához a függvénynek globális hatókörben kell lennie (ugyanúgy, mint bármely más PowerShell-függvénynél).To call a configuration, the function must be in global scope (as with any other PowerShell function). Ezt megteheti a parancsfájl "dot-beszerzése" vagy a szkript futtatásával, vagy a konfigurációs parancsfájl F5 használatával történő futtatásával, vagy az ISE parancsfájl futtatása gombjára kattintva.You can make this happen either by "dot-sourcing" the script, or by running the configuration script by using F5 or clicking on the Run Script button in the ISE. A parancsfájl kiindulásához futtassa a parancsot, ahol a a . .\myConfig.ps1 myConfig.ps1 konfigurációt tartalmazó parancsfájl neve.To dot-source the script, run the command . .\myConfig.ps1 where myConfig.ps1 is the name of the script file that contains your configuration.

A konfiguráció meghívásakor a következőket kell tennie:When you call the configuration, it:

  • Az összes változó feloldásaResolves all variables
  • Létrehoz egy mappát az aktuális könyvtárban a konfigurációval megegyező névvel.Creates a folder in the current directory with the same name as the configuration.
  • Létrehoz egy csomópontnév . MOF nevű fájlt az új könyvtárban, ahol a csomópontnév a konfiguráció cél csomópontjának neve.Creates a file named NodeName .mof in the new directory, where NodeName is the name of the target node of the configuration. Ha egynél több csomópont van, a rendszer minden egyes csomóponthoz létrehoz egy MOF-fájlt.If there is more than one node, a MOF file will be created for each node.

Megjegyzés

A MOF-fájl a cél csomópont összes konfigurációs adatát tartalmazza.The MOF file contains all of the configuration information for the target node. Ezért fontos, hogy biztonságban maradjanak.Because of this, it's important to keep it secure. További információ: a MOF-fájl biztonságossá tétele.For more information, see Securing the MOF file.

A fenti első konfiguráció lefordítása a következő mappastruktúrát eredményezi:Compiling the first configuration above results in the following folder structure:

. .\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ó paramétert használ, ahogy a második példában is, azt a fordítási időben kell megadni.If the configuration takes a parameter, as in the second example, that has to be provided at compile time. A következőképpen néz ki:Here's how that would look:

. .\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 konfigurációbanUsing new resources in Your configuration

Ha futtatta az előző példákat, előfordulhat, hogy észrevette, hogy a rendszer figyelmeztette, hogy az erőforrást kifejezetten az importálás nélkül használta.If you ran the previous examples, you might have noticed that you were warned that you were using a resource without explicitly importing it. A DSC jelenleg 12 erőforrással rendelkezik a PSDesiredStateConfiguration modul részeként.Today, DSC ships with 12 resources as part of the PSDesiredStateConfiguration module.

A Get-DscResourceparancsmag segítségével meghatározhatja, hogy mely erőforrások legyenek telepítve a rendszeren, és hogyan használható az LCD ChipOnGlas számára.The cmdlet, Get-DscResource, can be used to determine what resources are installed on the system and available for use by the LCM. Ha ezeket a modulokat a $env:PSModulePath Get-DscResourceáltal megfelelően felismerte, a rendszer a konfiguráción belül is be kell töltenie.Once these modules have been placed in $env:PSModulePath and are properly recognized by Get-DscResource, they still need to be loaded within your configuration.

Az import-DscResource egy dinamikus kulcsszó, amely csak konfigurációs blokkon belül felismerhető, nem parancsmag.Import-DscResource is a dynamic keyword that can only be recognized within a Configuration block, it is not a cmdlet. Az import-DscResource két paramétert támogat:Import-DscResource supports two parameters:

  • A ModuleName az import-DscResource használatának ajánlott módja.ModuleName is the recommended way of using Import-DscResource . Elfogadja az importálandó erőforrásokat tartalmazó modul nevét (valamint a modulok neveinek karakterlánc-tömbjét).It accepts the name of the module that contains the resources to be imported (as well as a string array of module names).
  • A Name az importálandó erőforrás neve.Name is the name of the resource to import. Ez nem a Get-DscResourceáltal "név" néven visszaadott felhasználóbarát név, de az erőforrás-séma definiálásakor használt osztálynév (a Get-DscResourceáltal resourcetype visszaadott érték).This is not the friendly name returned as "Name" by Get-DscResource, but the class name used when defining the resource schema (returned as ResourceType by Get-DscResource).

További információ a használatáról Import-DSCResource : import-DSCResource használataFor more information on using Import-DSCResource, see Using Import-DSCResource

PowerShell v4 és V5 különbségekPowerShell v4 and v5 differences

A DSC-erőforrásokat a PowerShell 4,0-ben kell tárolni.There are differences in where DSC resources need to be stored in PowerShell 4.0. További információ: erőforrás helye.For more information, see Resource location.

Lásd még:See Also