Applicare, ottenere e testare le configurazioni in un nodoApply, Get, and Test Configurations on a Node

Questa Guida illustrerà come usare le configurazioni in un nodo di destinazione.This guide will show you how to work with Configurations on a target Node. Questa guida è suddivisa nei seguenti passaggi:This guide is broken up into the following steps:

Applicare una configurazioneApply a Configuration

Per applicare e gestire una configurazione, è necessario generare un file "MOF".In order to apply and manage a Configuration, we need to generate a ".mof" file. Il codice seguente rappresenta una configurazione semplice che verrà usata in questa guida.The following code will represent a simple Configuration that will be used throughout this guide.

Configuration Sample
{
    # This will generate two .mof files, a localhost.mof, and a server02.mof
    Node localhost, server02
    {
        File SampleFile
        {
            DestinationPath = 'C:\Temp\temp.txt'
            Contents = 'This is a simple resource to show Configuration functionality on a Node.'
        }
    }
}

# The -OutputPath parameter is built into every Configuration automatically.
# The value of -OutputPath determines where the .mof file should be stored, once compiled.
Sample -OutputPath "C:\Temp\"

La compilazione di questa configurazione restituirà due file "MOF".Compiling this configuration will yield two ".mof" files.

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a----       11/27/2018   7:29 AM     2.13KB localhost.mof
-a----       11/27/2018   7:29 AM     2.13KB server02.mof

Per applicare una configurazione usare il cmdlet Start-DscConfiguration.To apply a Configuration, use the Start-DSCConfiguration cmdlet. Il parametro -Path specifica una directory in cui risiedono i file "MOF".The -Path parameter specifies a directory where ".mof" files reside. Se non è specificato -Computername, Start-DSCConfiguration tenterà di applicare ogni configurazione al nome del computer specificato dal nome del file MOF (<computername>.mof).If no -Computername is specified, Start-DSCConfiguration will attempt to apply each Configuration to the computer name specified by the name of the '.mof' file (<computername>.mof). Specificare -Verbose per Start-DSCConfiguration per visualizzare un output più dettagliato.Specify -Verbose to Start-DSCConfiguration to see more verbose output.

Start-DSCConfiguration -Path C:\Temp\ -Verbose

Se -Wait non è specificato, viene visualizzato un processo creato.If -Wait is not specified, you see one job created. Il processo creato disporrà di un ChildJob per ogni file "MOF" elaborato da Start-DSCConfiguration.The job created will have one ChildJob for each ".mof" file processed by Start-DSCConfiguration.

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
45     Job45           Configuratio... Running       True            localhost,server02   Start-DSCConfiguration...

Se una configurazione sta richiedendo molto tempo e si vuole arrestarla, è possibile usare Stop-DSCConfiguration per arrestare l'applicazione nel nodo locale.If a Configuration is taking a long time and you want to stop it, you can use Stop-DSCConfiguration to stop application on the local Node.

Stop-DSCConfiguration -Force

Al termine dell'operazione, è possibile visualizzare lo stato dei processi tramite l'oggetto processo restituito da Get-Job.Once complete, you can view the status of the jobs through the job object returned by Get-Job.

$job = Get-Job
$job.ChildJobs
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
49     Job49           Configuratio... Completed     True            localhost            Start-DSCConfiguration...
50     Job50           Configuratio... Completed     True            server02             Start-DSCConfiguration...

Per visualizzare l'output dettagliato , usare i seguenti comandi per visualizzare il flusso dettagliato per ogni ChildJob.To see the Verbose output, use the following commands to view the Verbose stream for each ChildJob. Per altre informazioni sui processi di PowerShell, vedere le informazioni sui processi.For more about PowerShell jobs, see about_Jobs.

# View the verbose output of the localhost job using array indexing.
$job.ChildJobs[0].Verbose
Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendConfigurationApply,
'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsoft/Windows/DesiredStateConfiguration'.
An LCM method call arrived from computer SERVER01 with user sid S-1-5-21-124525095-708259637-1543119021-1282804.
[SERVER01]: LCM:  [ Start  Set      ]
[SERVER01]: LCM:  [ Start  Resource ]  [[File]SampleFile]
[SERVER01]: LCM:  [ Start  Test     ]  [[File]SampleFile]
[SERVER01]:                            [[File]SampleFile] The destination object was found and no action is required.
[SERVER01]: LCM:  [ End    Test     ]  [[File]SampleFile]  in 0.0370 seconds.
[SERVER01]: LCM:  [ Skip   Set      ]  [[File]SampleFile]
[SERVER01]: LCM:  [ End    Resource ]  [[File]SampleFile]
[SERVER01]: LCM:  [ End    Set      ]
[SERVER01]: LCM:  [ End    Set      ]    in  0.2400 seconds.
Operation 'Invoke CimMethod' complete.

A partire da PowerShell 5.0, il parametro -UseExisting è stato aggiunto a Start-DSCConfiguration.Beginning in PowerShell 5.0, the -UseExisting parameter was added to Start-DSCConfiguration. Specificando -UseExisting, si indica al cmdlet di usare la configurazione esistente applicata invece di quella specificata dal parametro -Path.By specifying -UseExisting, you instruct the cmdlet to use the existing applied Configuration instead of one specified by the -Path parameter.

Start-DSCConfiguration -UseExisting -Verbose -Wait

Test di una configurazioneTest a Configuration

È possibile testare una configurazione attualmente applicata mediante Test-DSCConfiguration.You can test a currently applied Configuration using Test-DSCConfiguration. Test-DSCConfiguration restituirà True se il nodo è conforme e False in caso contrario.Test-DSCConfiguration will return True if the Node is compliant, and False if it is not.

Test-DSCConfiguration

A partire da PowerShell 5.0, è stato aggiunto il parametro -Detailed che restituisce un oggetto con le raccolte per ResourcesInDesiredState e ResourcesNotInDesiredStateBeginning in PowerShell 5.0, the -Detailed parameter was added which returns an object with collections for ResourcesInDesiredState and ResourcesNotInDesiredState

Test-DSCConfiguration -Detailed

A partire da PowerShell 5.0 è possibile testare una configurazione senza applicarla.Beginning in PowerShell 5.0 you can test a Configuration without applying it. Il parametro -ReferenceConfiguration accetta il percorso di un file "MOF" per eseguire il test del nodo.The -ReferenceConfiguration parameter accepts the path of a ".mof" file to test the Node against. Non vengono intraprese azioni Set sul nodo.No Set actions are taken against the Node. In PowerShell 4.0, sono disponibili soluzioni alternative per testare una configurazione senza applicarla, ma non sono descritte qui.In PowerShell 4.0, there are workarounds to test a Configuration without applying it, but they are not discussed here.

Recuperare i valori della configurazioneGet Configuration Values

Il cmdlet Get-DSCConfiguration restituisce i valori correnti per qualsiasi risorsa configurata nella configurazione attualmente applicata.The Get-DSCConfiguration cmdlet returns the current values for any configured resources in the currently applied Configuration.

Get-DSCConfiguration

L'output della configurazione di esempio ha un aspetto simile al seguente se la configurazione è stata applicata correttamente.Output from our sample Configuration would look like this if applied successfully.

ConfigurationName    : Sample
DependsOn            :
ModuleName           : PSDesiredStateConfiguration
ModuleVersion        :
PsDscRunAsCredential :
ResourceId           : [File]SampleFile
SourceInfo           :
Attributes           : {archive}
Checksum             :
Contents             :
CreatedDate          : 11/27/2018 7:16:06 AM
Credential           :
DestinationPath      : C:\Temp\temp.txt
Ensure               : present
Force                :
MatchSource          :
ModifiedDate         : 11/27/2018 7:16:06 AM
Recurse              :
Size                 : 75
SourcePath           :
SubItems             :
Type                 : file
PSComputerName       :
CimClassName         : MSFT_FileDirectoryConfiguration

Ottenere lo stato della configurazioneGet Configuration Status

A partire da PowerShell 5.0 il cmdlet Get-DSCConfigurationStatus consente di visualizzare la cronologia delle configurazioni applicate al nodo.Beginning in PowerShell 5.0 the Get-DSCConfigurationStatus cmdlet allows you to see the history of applied Configurations to the node. PowerShell DSC tiene traccia delle ultime configurazioni applicate {{N}} in modalità Push o Pull.PowerShell DSC keeps track of the last {{N}} Configurations applied in Push or Pull mode. Ciò include eventuali verifiche di coerenza eseguite da Gestione configurazione locale (LCM).This includes any consistency checks executed by the LCM. Per impostazione predefinita, Get-DSCConfigurationStatus mostra solo l'ultima voce di cronologia.By default, Get-DSCConfigurationStatus shows you the last history entry only.

Get-DSCConfigurationStatus
Status     StartDate                 Type            Mode  RebootRequested      NumberOfResources
------     ---------                 ----            ----  ---------------      -----------------
Success    11/27/2018 7:18:40 AM     Consistency     PUSH  False                1

Usare il parametro -All per visualizzare tutta la cronologia dello stato di configurazione.Use the -All parameter to see all Configuration Status history.

Nota

L'output viene troncato per brevità.Output is truncated for brevity.

Get-DSCConfigurationStatus -All
Status     StartDate                 Type            Mode  RebootRequested      NumberOfResources
------     ---------                 ----            ----  ---------------      -----------------
Success    11/27/2018 7:18:40 AM     Consistency     PUSH  False                1
Success    11/27/2018 7:16:06 AM     Initial         PUSH  False                1
Success    11/27/2018 7:04:53 AM     Initial         PUSH  False                1
Success    11/27/2018 7:03:45 AM     Consistency     PUSH  False                2
Success    11/27/2018 7:03:40 AM     Consistency     PUSH  False                2
Success    11/27/2018 6:48:40 AM     Consistency     PUSH  False                2
Success    11/27/2018 6:33:44 AM     Consistency     PUSH  False                2
Success    11/27/2018 6:33:40 AM     Consistency     PUSH  False                2
Success    11/27/2018 6:18:40 AM     Consistency     PUSH  False                2
Success    11/27/2018 6:03:44 AM     Consistency     PUSH  False                2

Gestire i documenti di configurazioneManage Configuration Documents

Gestione configurazione locale (LCM) gestisce la configurazione del nodo usando i documenti di configurazione.The LCM manages the Configuration of the Node by working with Configuration Documents. I file MOF risiedono nella directory C:\Windows\System32\Configuration.These ".mof" files reside in the C:\Windows\System32\Configuration directory.

A partire da PowerShell 5.0 Remove-DSCConfigurationDocument consente di rimuovere i file "MOF" per interrompere verifiche coerenza future o per rimuovere una configurazione che restituisce errori quando applicata.Beginning in PowerShell 5.0 the Remove-DSCConfigurationDocument allows you to remove the ".mof" files to stop future consistency checks or remove a Configuration that has errors when applied. Il parametro -Stage consente di specificare quale file "MOF" si desidera rimuovere.The -Stage parameter allows you to specify which ".mof" file you want to remove.

Remove-DSCConfigurationDocument -Stage Current

Nota

In PowerShell 4.0 è comunque possibile rimuovere i file "MOF" direttamente usando Remove-Item.In PowerShell 4.0, you can still remove these ".mof" files directly using Remove-Item.

Pubblicare le configurazioniPublish Configurations

A partire da PowerShell 5.0 è stato aggiunto il cmdlet Publish-DSCConfiguration.Beginning in PowerShell 5.0, the Publish-DSCConfiguration cmdlet was added. Questo cmdlet consente di pubblicare un file "MOF" in computer remoti, senza applicarlo.This cmdlet allows you to publish a ".mof" file to remote computers, without applying it.

Publish-DscConfiguration -Path '$home\WebServer' -ComputerName "ContosoWebServer" -Credential (get-credential Contoso\webadministrator)

Vedere ancheSee also