Aplicación, obtención y prueba de las configuraciones en un nodoApply, Get, and Test Configurations on a Node

Esta guía le mostrará cómo trabajar con las configuraciones en un nodo de destino.This guide will show you how to work with Configurations on a target Node. Se divide en los pasos siguientes:This guide is broken up into the following steps:

Aplicación de una configuraciónApply a Configuration

Para aplicar y administrar una configuración, es necesario generar un archivo ".mof".In order to apply and manage a Configuration, we need to generate a ".mof" file. El siguiente código representará una configuración simple que se usará en esta guía.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 compilación de esta configuración dará como resultado dos archivos ".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

Para aplicar una configuración, use el cmdlet Start-DSCConfiguration.To apply a Configuration, use the Start-DSCConfiguration cmdlet. El parámetro -Path especifica un directorio donde residen los archivos ".mof".The -Path parameter specifies a directory where ".mof" files reside. Si no se especifica -Computername, Start-DSCConfiguration intentará aplicar cada configuración al nombre de equipo especificado por el nombre del archivo ".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). Especifique -Verbose e Start-DSCConfiguration para ver una salida más detallada.Specify -Verbose to Start-DSCConfiguration to see more verbose output.

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

Si -Wait no se especifica, verá un trabajo creado.If -Wait is not specified, you see one job created. El trabajo creado tendrá un ChildJob para cada archivo ".mof" procesado por 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...

Si una configuración está tardando mucho tiempo y desea detenerla, puede usar Stop-DSCConfiguration para detener la aplicación en el nodo local.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

Una vez que haya finalizado, puede ver el estado de los trabajos a través del objeto de trabajo devuelto por 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...

Para ver la salida de Verbose , use los siguientes comandos para ver la secuencia Verbose para cada ChildJob.To see the Verbose output, use the following commands to view the Verbose stream for each ChildJob. Para más información sobre los trabajos de PowerShell, vea about_Jobs (Acerca de los trabajos).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 partir de PowerShell 5.0, se agregó el parámetro -UseExisting a Start-DSCConfiguration.Beginning in PowerShell 5.0, the -UseExisting parameter was added to Start-DSCConfiguration. Mediante la especificación de -UseExisting, indica al cmdlet que use la configuración aplicada existente en lugar de una especificada por el parámetro -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

Prueba de una configuraciónTest a Configuration

Puede probar una configuración aplicada actualmente mediante Test-DSCConfiguration.You can test a currently applied Configuration using Test-DSCConfiguration. Test-DSCConfiguration devolverá True si el nodo es compatible, y False si no lo es.Test-DSCConfiguration will return True if the Node is compliant, and False if it is not.

Test-DSCConfiguration

A partir de PowerShell 5.0, se ha agregado el parámetro -Detailed, que devuelve un objeto con las colecciones de ResourcesInDesiredState y ResourcesNotInDesiredState.Beginning in PowerShell 5.0, the -Detailed parameter was added which returns an object with collections for ResourcesInDesiredState and ResourcesNotInDesiredState

Test-DSCConfiguration -Detailed

A partir de PowerShell 5.0, puede probar una configuración sin aplicarla.Beginning in PowerShell 5.0 you can test a Configuration without applying it. El parámetro -ReferenceConfiguration acepta la ruta de acceso de un archivo ".mof" en la que probar el nodo.The -ReferenceConfiguration parameter accepts the path of a ".mof" file to test the Node against. No se realizan acciones Set en el nodo.No Set actions are taken against the Node. En PowerShell 4.0, hay soluciones alternativas para probar una configuración sin aplicarla, pero no se tratan aquí.In PowerShell 4.0, there are workarounds to test a Configuration without applying it, but they are not discussed here.

Obtención de valores de configuraciónGet Configuration Values

El cmdlet Get-DSCConfiguration devuelve los valores actuales de los recursos configurados en la configuración aplicada actualmente.The Get-DSCConfiguration cmdlet returns the current values for any configured resources in the currently applied Configuration.

Get-DSCConfiguration

Los resultados de ejemplo de nuestra configuración tendrían un aspecto similar al siguiente si se aplicaron correctamente.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

Obtención de estado de configuraciónGet Configuration Status

A partir de PowerShell 5.0, el cmdlet Get-DSCConfigurationStatus le permite ver el historial de las configuraciones aplicadas al nodo.Beginning in PowerShell 5.0 the Get-DSCConfigurationStatus cmdlet allows you to see the history of applied Configurations to the node. DSC de PowerShell realiza un seguimiento de los últimos {{N}} valores de configuración aplicados en modo de inserción o extracción.PowerShell DSC keeps track of the last {{N}} Configurations applied in Push or Pull mode. Esto incluye las comprobaciones de coherencia ejecutadas por el LCM.This includes any consistency checks executed by the LCM. De forma predeterminada, Get-DSCConfigurationStatus muestra solo la última entrada del historial.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

Use el parámetro -All para ver todo el historial del estado de configuración.Use the -All parameter to see all Configuration Status history.

Nota

La salida se trunca por razones de brevedad.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

Administración de documentos de configuraciónManage Configuration Documents

El LCM administra la configuración del nodo al trabajar con documentos de configuración.The LCM manages the Configuration of the Node by working with Configuration Documents. Estos archivos ". mof" residen en el directorio C:\Windows\System32\Configuration.These ".mof" files reside in the C:\Windows\System32\Configuration directory.

A partir de PowerShell 5.0, Remove-DSCConfigurationDocument le permite quitar los archivos ".mof" para detener las futuras comprobaciones de coherencia o quitar una configuración que tiene errores cuando se aplica.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. El parámetro -Stage le permite especificar qué archivo ".mof" desea quitar.The -Stage parameter allows you to specify which ".mof" file you want to remove.

Remove-DSCConfigurationDocument -Stage Current

Nota

En PowerShell 4.0, todavía puede quitar estos archivos ".mof" directamente mediante Remove-Item.In PowerShell 4.0, you can still remove these ".mof" files directly using Remove-Item.

Publicación de configuracionesPublish Configurations

A partir de PowerShell 5.0, se agregó el cmdlet Publish-DSCConfiguration.Beginning in PowerShell 5.0, the Publish-DSCConfiguration cmdlet was added. Este cmdlet permite publicar un archivo ".mof" en equipos remotos, sin aplicarlo.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)

Consulte tambiénSee also