Get-test-setGet-Test-Set

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

A PowerShell kívánt állapotának konfigurálása Get , test és set folyamat körül történik.PowerShell Desired State Configuration is constructed around a Get , Test , and Set process. A DSC- erőforrások mindegyike metódust tartalmaz az egyes műveletek végrehajtásához.DSC resources each contains methods to complete each of these operations. Egy konfigurációbanaz erőforrás-blokkokat úgy definiálhatja, hogy kitöltse azokat a kulcsokat, amelyek egy erőforrás Get , test és set metódusának paraméterei lesznek.In a Configuration, you define resource blocks to fill in keys that become parameters for a resource's Get , Test , and Set methods.

Ez a szolgáltatás -erőforrás blokk szintaxisa.This is the syntax for a Service resource block. A szolgáltatási erőforrás konfigurálja a Windows-szolgáltatásokat.The Service resource configures Windows services.

Service [String] #ResourceName
{
    Name = [string]
    [BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
    [Credential = [PSCredential]]
    [Dependencies = [string[]]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DisplayName = [string]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [string]]
    [PsDscRunAsCredential = [PSCredential]]
    [StartupType = [string]{ Automatic | Disabled | Manual }]
    [State = [string]{ Running | Stopped }]
}

A szolgáltatási erőforrás Get , test és set metódusának paraméter-blokkokkal kell elfogadnia ezeket az értékeket.The Get , Test , and Set methods of the Service resource will have parameter blocks that accept these values.

param
(
    [parameter(Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [System.String]
    $Name,

    [System.String]
    [ValidateSet("Automatic", "Manual", "Disabled")]
    $StartupType,

    [System.String]
    [ValidateSet("LocalSystem", "LocalService", "NetworkService")]
    $BuiltInAccount,

    [System.Management.Automation.PSCredential]
    [ValidateNotNull()]
    $Credential,

    [System.String]
    [ValidateSet("Running", "Stopped")]
    $State="Running",

    [System.String]
    [ValidateNotNullOrEmpty()]
    $DisplayName,

    [System.String]
    [ValidateNotNullOrEmpty()]
    $Description,

    [System.String]
    [ValidateNotNullOrEmpty()]
    $Path,

    [System.String[]]
    [ValidateNotNullOrEmpty()]
    $Dependencies,

    [System.String]
    [ValidateSet("Present", "Absent")]
    $Ensure="Present"
)

Megjegyzés

Az erőforrás definiálásához használt nyelv és metódus határozza meg a Get , a test és a set metódusok meghatározásának módját.The language and method used to define the resource determines how the Get , Test , and Set methods will be defined.

Mivel a szolgáltatási erőforrásnak csak egy kötelező kulcsa ( Name ) van, a szolgáltatási blokk erőforrásai a következőképpen lehetnek egyszerűek:Because the Service resource only has one required key (Name), a Service block resource could be as simple as this:

Configuration TestConfig
{
    Import-DSCResource -Name Service
    Node localhost
    {
        Service "MyService"
        {
            Name = "Spooler"
        }
    }
}

A fenti konfiguráció fordításakor a rendszer a kulcshoz megadott értékeket a .mof generált fájlban tárolja.When you compile the Configuration above, the values you specify for a key are stored in the .mof file that is generated. További információ: MOF.For more information, see MOF.

instance of MSFT_ServiceResource as $MSFT_ServiceResource1ref
{
SourceInfo = "::5::1::Service";
 ModuleName = "PsDesiredStateConfiguration";
 ResourceID = "[Service]MyService";
 Name = "Spooler";

ModuleVersion = "1.0";

 ConfigurationName = "Test";

};

Alkalmazása esetén a helyi Configuration Manager (LCD ChipOnGlas) beolvassa a "nyomtatásisor-kezelő" értéket a .mof fájlból, majd átadja azt a szolgáltatás -erőforrás "MyService" példányához tartozó Get , test és set metódusok Name paraméterének.When applied, the Local Configuration Manager (LCM) will read the value "Spooler" from the .mof file, and pass it to the Name parameter of the Get , Test , and Set methods for the "MyService" instance of the Service resource.

LekérésGet

Egy erőforrás Get metódusa lekéri az erőforrás állapotát, ahogy azt a célként megadott csomóponton konfigurálták.The Get method of a resource, retrieves the state of the resource as it is configured on the target Node. Ezt az állapotot szórótáblaadja vissza.This state is returned as a hashtable. A szórótábla kulcsai lesznek a konfigurálható értékek vagy paraméterek, amelyeket az erőforrás elfogad.The keys of the hashtable will be the configurable values, or parameters, the resource accepts.

A Get metódus leképezi közvetlenül a Get-DSCConfiguration parancsmagot.The Get method maps directly to the Get-DSCConfiguration cmdlet. A hívásakor Get-DSCConfiguration az LCD a jelenleg alkalmazott konfigurációban futtatja az egyes erőforrások Get metódusát.When you call Get-DSCConfiguration, the LCM runs the Get method of each resource in the currently applied configuration. Az LCD ChipOnGlas a fájlban tárolt kulcs-értékeket .mof paraméterként használja az összes kapcsolódó erőforrás-példányhoz.The LCM uses the key values stored in the .mof file as parameters to each corresponding resource instance.

Ez egy olyan szolgáltatási erőforrás mintája, amely a "sorkezelő" szolgáltatást konfigurálja.This is sample output from a Service resource that configures the "Spooler" service.

ConfigurationName    : Test
DependsOn            :
ModuleName           : PsDesiredStateConfiguration
ModuleVersion        : 1.1
PsDscRunAsCredential :
ResourceId           : [Service]Spooler
SourceInfo           :
BuiltInAccount       : LocalSystem
Credential           :
Dependencies         : {RPCSS, http}
Description          : This service spools print jobs and handles interaction with the printer.  If you turn off
                       this service, you won't be able to print or see your printers.
DisplayName          : Print Spooler
Ensure               :
Name                 : Spooler
Path                 : C:\WINDOWS\System32\spoolsv.exe
StartupType          : Automatic
State                : Running
Status               :
PSComputerName       :
CimClassName         : MSFT_ServiceResource

A kimenet a szolgáltatási erőforrás által konfigurálható aktuális érték tulajdonságokat jeleníti meg.The output shows the current value properties configurable by the Service resource.

Service [String] #ResourceName
{
    Name = [string]
    [BuiltInAccount = [string]{ LocalService | LocalSystem | NetworkService }]
    [Credential = [PSCredential]]
    [Dependencies = [string[]]]
    [DependsOn = [string[]]]
    [Description = [string]]
    [DisplayName = [string]]
    [Ensure = [string]{ Absent | Present }]
    [Path = [string]]
    [PsDscRunAsCredential = [PSCredential]]
    [StartupType = [string]{ Automatic | Disabled | Manual }]
    [State = [string]{ Running | Stopped }]
}

TesztelésTest

Egy erőforrás tesztelési módszere határozza meg, hogy a cél csomópont jelenleg megfelel-e az erőforrás kívánt állapotának .The Test method of a resource determines if the target node is currently compliant with the resource's desired state . A teszt metódus visszaadja $true vagy $false csak azt jelzi, hogy a csomópont megfelelő-e.The Test method returns $true or $false only to indicate whether the Node is compliant. A test-DSCConfigurationhívásakor az LCD ChipOnGlas a jelenleg alkalmazott konfigurációban meghívja az egyes erőforrások tesztelési módszerét.When you call Test-DSCConfiguration, the LCM calls the Test method of each resource in the currently applied configuration. Az LCD ChipOnGlas a ". MOF" fájlban tárolt kulcs értékeket használja paraméterekként az összes kapcsolódó erőforrás-példányhoz.The LCM uses the key values stored in the ".mof" file as parameters to each corresponding resource instance.

Ha egy adott erőforrás tesztje eredményét $false Test-DSCConfiguration adja vissza, $false a függvény azt jelzi, hogy a csomópont nem megfelelő.If the result of any individual resource's Test is $false, Test-DSCConfiguration returns $false indicating that the Node is not compliant. Ha az összes erőforrás tesztelési módszere visszatér $true , a Test-DSCConfiguration visszatérési $true érték azt jelzi, hogy a csomópont megfelelő.If all resource's Test methods return $true, Test-DSCConfiguration returns $true to indicate that the Node is compliant.

Test-DSCConfiguration
True

A PowerShell 5,0-től kezdve a részletes paraméter hozzá lett adva.Beginning in PowerShell 5.0, the Detailed parameter was added. Részletes okok megadása Test-DSCConfiguration egy olyan objektum visszaadásához, amely a megfelelő és nem megfelelő erőforrások eredményeinek gyűjteményeit tartalmazza.Specifying Detailed causes Test-DSCConfiguration to return an object containing collections of results for compliant, and non-compliant resources.

Test-DSCConfiguration -Detailed
PSComputerName  ResourcesInDesiredState        ResourcesNotInDesiredState     InDesiredState
--------------  -----------------------        --------------------------     --------------
localhost       {[Service]Spooler}                                            True

További információ: test-DSCConfiguration.For more information, see Test-DSCConfiguration.

BeállításSet

Egy erőforrás set metódusa megkísérli kényszeríteni a csomópontot, hogy az megfeleljen az erőforrás kívánt állapotának .The Set method of a resource attempts to force the Node to become compliant with the resource's desired state . A set metódusnak idempotens kell lennie, ami azt jelenti, hogy a készlet többször is futhat, és hibák nélkül mindig ugyanazt az eredményt kapja.The Set method is meant to be idempotent , which means that Set could be run multiple times and always get the same result without errors. A Start-DSCConfigurationfuttatásakor az LCD ChipOnGlas az aktuálisan alkalmazott konfigurációban lévő összes erőforráson keresztüli ciklust használ.When you run Start-DSCConfiguration, the LCM cycles through each resource in the currently applied configuration. Az LCD ChipOnGlas lekéri az aktuális erőforrás-példány kulcsának értékeit a ". MOF" fájlból, és paraméterként használja azokat a tesztelési módszerhez.The LCM retrieves key values for the current resource instance from the ".mof" file and uses them as parameters for the Test method. Ha a teszt metódus visszatér $true , a csomópont megfelel az aktuális erőforrásnak, és a set metódus ki lesz hagyva.If the Test method returns $true, the Node is compliant with the current resource, and the Set method is skipped. Ha a teszt eredménye $false , a csomópont nem megfelelő.If the Test returns $false, the Node is non-compliant. Az LCD ChipOnGlas az erőforrás-példány kulcsának értékeit paraméterként adja át az erőforrás beállított metódusának, és a csomópontot a megfelelőségre állítja vissza.The LCM passes the resource instance's key values as parameters to the resource's Set method, restoring the Node to compliance.

A részletes és várakozási paraméterek megadásával megtekintheti a parancsmag előrehaladását Start-DSCConfiguration .By specifying the Verbose and Wait parameters, you can watch the progress of the Start-DSCConfiguration cmdlet. Ebben a példában a csomópont már megfelelő.In this example, the Node is already compliant. A Verbose kimenet azt jelzi, hogy a set metódus ki lett hagyva.The Verbose output indicates that the Set method was skipped.

PS> Start-DSCConfiguration -Verbose -Wait -UseExisting

VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' =
ApplyConfiguration,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer SERVER01 with user sid
S-1-5-21-124525095-708259637-1543119021-1282804.
VERBOSE: [SERVER01]:                            [] Starting consistency engine.
VERBOSE: [SERVER01]:                            [] Checking consistency for current configuration.
VERBOSE: [SERVER01]:                            [DSCEngine] Importing the module
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\PSDesiredStateConfiguration\DscResources\MSFT_ServiceResource\MSFT
_ServiceResource.psm1 in force mode.
VERBOSE: [SERVER01]: LCM:  [ Start  Resource ]  [[Service]Spooler]
VERBOSE: [SERVER01]: LCM:  [ Start  Test     ]  [[Service]Spooler]
VERBOSE: [SERVER01]:                            [[Service]Spooler] Importing the module MSFT_ServiceResource in
force mode.
VERBOSE: [SERVER01]: LCM:  [ End    Test     ]  [[Service]Spooler]  in 0.2540 seconds.
VERBOSE: [SERVER01]: LCM:  [ Skip   Set      ]  [[Service]Spooler]
VERBOSE: [SERVER01]: LCM:  [ End    Resource ]  [[Service]Spooler]
VERBOSE: [SERVER01]:                            [] Consistency check completed.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 1.379 seconds

Lásd mégSee also