통합되고 일관된 상태 및 상태 표현Unified and Consistent State and Status Representation

이번 릴리스에서는 자동화 빌드 LCM 상태 및 DSC 상태에 대한 일련의 기능이 향상되었습니다.A series of enhancements have been made in this release for automations built LCM state and DSC status. 여기에는 통합되고 일관된 상태 및 상태 표현, Get-DscConfigurationStatus cmdlet에서 반환하는 상태 개체의 관리 가능한 datetime 속성 및 Get-DscLocalConfigurationManager cmdlet에서 반환하는 향상된 LCM 상태 세부 정보 속성이 포함됩니다.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.

다음 규칙에 따라 LCM 상태 및 DSC 작업 상태의 표현을 다시 찾아 통합합니다.The representation of LCM state and DSC operation status are revisited and unified according to following rules:

  1. 처리되지 않은 리소스는 LCM 상태 및 DSC 상태에 영향을 주지 않습니다.Notprocessed resource does not impact LCM state and DSC status.
  2. LCM은 다시 부팅을 요청하는 리소스가 발견되면 추가 리소스 처리를 중지합니다.LCM stop processing further resources once it encounters a resource that requests reboot.
  3. 다시 부팅을 요청하는 리소스는 실제로 다시 부팅된 다음에야 원하는 상태가 됩니다.A resource that requests reboot is not in desired state until reboot actually happens.
  4. 실패한 리소스가 발견되면 LCM은 추가 리소스가 실패 리소스에 종속되지 않는 한 계속 처리합니다.After encountering a resource that fails, LCM keeps processing further resources as long as they are not dependent on the failure one.
  5. Get-DscConfigurationStatus cmdlet에서 반환하는 전체 상태는 모든 리소스 상태의 상위 집합입니다.The overall status returned by Get-DscConfigurationStatus cmdlet is the super set of all resources' status.
  6. PendingReboot 상태는 PendingConfiguration 상태의 상위 집합입니다.The PendingReboot state is a superset of PendingConfiguration state.

다음 표에서는 몇 가지 일반적인 시나리오의 결과 상태 및 상태 관련 속성을 보여 줍니다.The table below illustrates the resultant state and status related properties under a few typical scenarios.

시나리오Scenario LCMStateLCMState 상태Status 다시 부팅 요청Reboot Requested ResourcesInDesiredStateResourcesInDesiredState ResourcesNotInDesiredStateResourcesNotInDesiredState
SiSi 유휴 상태Idle SuccessSuccess $false$false SS $null$null
FiFi PendingConfigurationPendingConfiguration 실패Failure $false$false $null$null FF
S,FS,F PendingConfigurationPendingConfiguration 실패Failure $false$false SS FF
F,SF,S PendingConfigurationPendingConfiguration 실패Failure $false$false SS FF
S1, F, S2S1, F, S2 PendingConfigurationPendingConfiguration 실패Failure $false$false S1, S2S1, S2 FF
F1, S, F2F1, S, F2 PendingConfigurationPendingConfiguration 실패Failure $false$false SS F1, F2F1, F2
S, rS, r PendingRebootPendingReboot SuccessSuccess $true$true SS rr
F, rF, r PendingRebootPendingReboot 실패Failure $true$true $null$null F, rF, r
r, Sr, S PendingRebootPendingReboot SuccessSuccess $true$true $null$null rr
r, Fr, F PendingRebootPendingReboot SuccessSuccess $true$true $null$null rr
  • Si: 제대로 적용된 일련의 리소스Si: A series of resources that applied successfully
  • Fi: 제대로 적용되지 않은 일련의 리소스Fi: A series of resources that applied unsuccessfully
  • r: 다시 부팅이 필요한 리소스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

Get-DscConfigurationStatus cmdlet의 향상된 기능Enhancement in Get-DscConfigurationStatus cmdlet

이번 릴리스에서는 Get-DscConfigurationStatus cmdlet의 몇 가지 기능이 향상되었습니다.A few enhancements have been made to Get-DscConfigurationStatus cmdlet in this release. 이전에는 cmdlet에서 반환하는 개체의 StartDate 속성이 String 형식이었습니다.Previously, the StartDate property of objects returned by the cmdlet is of String type. 지금은 Datetime 형식이어서 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 | Format-List *

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

다음 예제에서는 오늘과 같은 요일에 수행된 모든 DSC 작업 레코드를 반환합니다.The following example returns all DSC operation records that happened on the same day of week as the current day.

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

노드의 구성을 변경하지 않는 작업(예: 읽기 전용 작업)의 레코드는 제거됩니다.Records of operations that do not make changes to node’s configuration (i.e. read only operations) are eliminated. 따라서, Test-DscConfiguration, Get-DscConfiguration 작업이 Get-DscConfigurationStatus cmdlet에서 반환된 개체에서 더 이상 저하되지 않습니다.Therefore, Test-DscConfiguration, Get-DscConfiguration operations are no longer adulterated in returned objects from Get-DscConfigurationStatus cmdlet. 메타 구성 설정 작업의 레코드는 Get-DscConfigurationStatus cmdlet의 반환 값에 추가됩니다.Records of meta configuration setting operation is added to the return of Get-DscConfigurationStatus cmdlet.

다음은 Get-DscConfigurationStatus –All cmdlet에서 반환된 결과의 예입니다.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

Get-DscLocalConfigurationManager cmdlet에서 향상된 기능Enhancement in Get-DscLocalConfigurationManager cmdlet

LCMStateDetail의 새 필드가 Get-DscLocalConfigurationManager cmdlet에서 반환된 개체에 추가되었습니다.A new field of LCMStateDetail is added to the object returned from Get-DscLocalConfigurationManager cmdlet. 이 필드는 LCMState가 “사용 중”일 때 채워지며.This field is populated when LCMState is "Busy". 다음 cmdlet으로 검색할 수 있습니다.It can be retrieved by following cmdlet:

(Get-DscLocalConfigurationManager).LCMStateDetail

다음은 원격 노드에서 두 번 다시 부팅해야 하는 구성에 대한 연속 모니터링의 예제 출력입니다.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,