Representação de estado e status consistente e unificadaUnified and Consistent State and Status Representation

Uma série de melhorias foram feitas nessa versão em relação ao estado do LCM e ao status do DSC internos das automações.A series of enhancements have been made in this release for automations built LCM state and DSC status. Entre elas estão representações de estado e status consistentes e unificadas, propriedade datetime gerenciável de objetos de status retornados pelo cmdlet Get-DscConfigurationStatus e melhoria na propriedade de detalhes do estado do LCM retornada pelo cmdlet Get-DscLocalConfigurationManager.These include unified and consistent state and status representations, manageable datetime property of status objects returned by Get-DscConfigurationStatus cmdlet and enhanced LCM state details property returned by Get-DscLocalConfigurationManager cmdlet.

A representação do estado do LCM e do status de operação do DSC foi revisitada e unificada de acordo com as seguintes regras:The representation of LCM state and DSC operation status are revisited and unified according to following rules:

  1. O recurso NotProcessed não afeta o estado do LCM e o status do DSC.Notprocessed resource does not impact LCM state and DSC status.
  2. O LCM interrompe o processamento de mais recursos quando encontra um recurso que solicita a reinicialização.LCM stop processing further resources once it encounters a resource that requests reboot.
  3. Um recurso que solicita a reinicialização não fica no estado desejado até que realmente ocorra uma reinicialização.A resource that requests reboot is not in desired state until reboot actually happens.
  4. Depois de encontrar um recurso que falha, o LCM mantém o processamento de mais recursos desde que eles não sejam dependentes da primeira falha.After encountering a resource that fails, LCM keeps processing further resources as long as they are not dependent on the failure one.
  5. O status geral retornado pelo cmdlet Get-DscConfigurationStatus é o superconjunto de todos os status de recursos.The overall status returned by Get-DscConfigurationStatus cmdlet is the super set of all resources’ status.
  6. O estado de PendingReboot é um superconjunto do estado de PendingConfiguration.The PendingReboot state is a superset of PendingConfiguration state.

A tabela abaixo ilustra as propriedades relacionadas a estado e status resultantes em alguns cenários típicos.The table below illustrates the resultant state and status related properties under a few typical scenarios.

CenárioScenario LCMState\LCMState\** StatusStatus Reinicialização solicitadaReboot Requested ResourcesInDesiredStateResourcesInDesiredState ResourcesNotInDesiredStateResourcesNotInDesiredState
S^S^ IdleIdle SucessoSuccess $false$false SS $null$null
F^F^ PendingConfigurationPendingConfiguration FalhaFailure $false$false $null$null FF
S,FS,F PendingConfigurationPendingConfiguration FalhaFailure $false$false SS FF
F,SF,S PendingConfigurationPendingConfiguration FalhaFailure $false$false SS FF
S1, F, S2S1, F, S2 PendingConfigurationPendingConfiguration FalhaFailure $false$false S1, S2S1, S2 FF
F1, S, F2F1, S, F2 PendingConfigurationPendingConfiguration FalhaFailure $false$false SS F1, F2F1, F2
S, rS, r PendingRebootPendingReboot SucessoSuccess $true$true SS rr
F, rF, r PendingRebootPendingReboot FalhaFailure $true$true $null$null F, rF, r
r, Sr, S PendingRebootPendingReboot SucessoSuccess $true$true $null$null rr
r, Fr, F PendingRebootPendingReboot SucessoSuccess $true$true $null$null rr

^ Si: uma série de recursos que são aplicadas com êxito Fi: uma série de recursos que são aplicados sem êxito r: um recurso que exige reinicialização *^ Si: A series of resources that applied successfully Fi: A series of resources that applied unsuccessfully r: A resource that requires reboot *

$LCMState = (Get-DscLocalConfigurationManager).LCMState
$Status = (Get-DscConfigurationStatus).Status

$RebootRequested = (Get-DscConfigurationStatus).RebootRequested

$ResourcesInDesiredState = (Get-DscConfigurationStatus).ResourcesInDesiredState

$ResourcesNotInDesiredState = (Get-DscConfigurationStatus).ResourcesNotInDesiredState

Melhorias no cmdlet Get-DscConfigurationStatusEnhancement in Get-DscConfigurationStatus cmdlet

Foram feitas algumas melhorias ao cmdlet Get-DscConfigurationStatus nesta versão.A few enhancements have been made to Get-DscConfigurationStatus cmdlet in this release. Anteriormente, a propriedade StartDate de objetos retornados pelo cmdlet era do tipo String.Previously, the StartDate property of objects returned by the cmdlet is of String type. Agora, ela é do tipo Datetime, o que permite uma seleção e filtragem complexas, facilitando-as com base nas propriedades intrínsecas de um objeto Datetime.Now, it is of Datetime type, which enables complex selecting and filtering easier based on the intrinsic properties of a Datetime object.

(Get-DscConfigurationStatus).StartDate | fl \*
DateTime : Friday, November 13, 2015 1:39:44 PM
Date : 11/13/2015 12:00:00 AM
Day : 13
DayOfWeek : Friday
DayOfYear : 317
Hour : 13
Kind : Local
Millisecond : 886
Minute : 39
Month : 11
Second : 44
Ticks : 635830187848860000
TimeOfDay : 13:39:44.8860000
Year : 2015

Veja a seguir um exemplo que retorna todos os registros de operação do DSC ocorridos no mesmo dia da semana que hoje.Following is an example that returns all DSC operation records happened on the same day of week as today.

(Get-DscConfigurationStatus –All) | where { $\_.startdate.dayofweek -eq (Get-Date).DayOfWeek }

Registros de operações que não fazem alterações à configuração do nó (ou seja, operações somente leitura) são eliminados.Records of operations that do not make changes to node’s configuration (i.e. read only operations) are eliminated. Portanto, as operações Test-DscConfiguration e Get-DscConfiguration são não mais adulteradas em objetos retornados pelo cmdlet Get-DscConfigurationStatus.Therefore, Test-DscConfiguration, Get-DscConfiguration operations are no longer adulterated in returned objects from Get-DscConfigurationStatus cmdlet. Registros da operação de definição de metaconfiguração são adicionados ao retorno pelo cmdlet Get-DscConfigurationStatus.Records of meta configuration setting operation is added to the return of Get-DscConfigurationStatus cmdlet.

Apresentamos a seguir um exemplo de resultado retornado pelo cmdlet Get-DscConfigurationStatus –All.Following is an example of result returned from Get-DscConfigurationStatus –All cmdlet.

All configuration operations:

Status StartDate Type RebootRequested
------ --------- ---- ---------------
Success 11/13/2015 11:38:16 AM Consistency False
Success 11/13/2015 11:23:16 AM Reboot False
Success 11/13/2015 11:21:43 AM Reboot True
Success 11/13/2015 11:20:44 AM Initial True
Success 11/13/2015 11:20:44 AM LocalConfigurationManager False

Melhoria no cmdlet Get-DscLocalConfigurationManagerEnhancement in Get-DscLocalConfigurationManager cmdlet

Um novo campo de LCMStateDetail é adicionado ao objeto retornado pelo cmdlet Get-DscLocalConfigurationManager.A new field of LCMStateDetail is added to the object returned from Get-DscLocalConfigurationManager cmdlet. Este campo é populado quando LCMState é “Ocupado”.This field is populated when LCMState is “Busy”. Ele pode ser recuperado pelo seguinte cmdlet:It can be retrieved by following cmdlet:

(Get-DscLocalConfigurationManager).LCMStateDetail

Veja a seguir um exemplo de saída de um monitoramento contínuo em uma configuração que exige duas reinicializações em um nó remoto.Following is an example output of a continuous monitoring on a configuration that requires two reboots on a remote node.

Start a configuration that requires two reboots

Monitor LCM State:
LCM State: Busy, LCM is applying a new configuration.
LCM State: PendingReboot,
Machine is rebooting...
LCM State: Busy, LCM is continuing applying configuration after last reboot.
LCM State: PendingReboot,
Machine is rebooting...
LCM State: Busy, LCM is continuing applying configuration after last reboot.
LCM State: Idle,
LCM State: Busy, LCM is performing a consistency check.
LCM State: Idle,