A MOF fájl birtokában már tudjuk alkalmazni a konfigurációs előírásokat a gépünkre. Mielőtt ezt megtennénk, nézzük meg az LCM beállításait a Get-DSCLocalConfigurationManager cmdlet segítségével:
PS C:\> Get-DscLocalConfigurationManager
ActionAfterReboot : ContinueConfiguration
AllowModuleOverWrite : False
CertificateID :
ConfigurationDownloadManagers : {}
ConfigurationID :
ConfigurationMode : ApplyAndMonitor
ConfigurationModeFrequencyMins : 15
Credential :
DebugMode : {NONE}
DownloadManagerCustomData :
DownloadManagerName :
LCMCompatibleVersions : {1.0, 2.0}
LCMState : PendingConfiguration
LCMStateDetail :
LCMVersion : 2.0
StatusRetentionTimeInDays : 10
PartialConfigurations :
RebootNodeIfNeeded : False
RefreshFrequencyMins : 30
RefreshMode : PUSH
ReportManagers : {}
ResourceModuleManagers : {}
PSComputerName :
Most számunkra a RefreshMode tulajdonság az érdekes, ami itt most PUSH-ra van állítva, ami azt jelenti, hogy maga az LCM nem keresi a MOF fájlokat aktív módon, hanem nekünk kell szólni neki, ha valamit végre akarunk hajtatni. Ezt a Start-DSCConfiguration cmdlettel tehetjük meg.
Megjegyzés
Fontos, hogy a konfiguráció végrehajtását rendszergazdaként, emelt jogosultságú PowerShell ablakban kell futtassuk (Run as administrator).
Itt én használom a -Wait (ne csak a háttérben fusson, hanem várja meg a konfigurálás eredményét), -Verbose (lássam mi történik) és ‑Force (ha esetleg lett volna korábban egy olyan konfigurálás, ami megszakadt, például hibás konfiuráció miatt, akkor is hajtsa végre ezt az újat) kapcsolókat is:
PS C:\> Start-DscConfiguration -Path C:\PowerShell -Wait -Verbose -Force
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters,
''methodName' = SendConfigurationApply,'className' =
MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer STLENO with user sid
S-1-5-21-2156952311-2926033462-1066486086-1000.
VERBOSE: [STLENO]: LCM: [ Start Set ]
VERBOSE: [STLENO]: LCM: [ Start Resource ] [[File]Fájl]
VERBOSE: [STLENO]: LCM: [ Start Test ] [[File]Fájl]
VERBOSE: [STLENO]: [[File]Fájl] The system cannot
find the file specified.
VERBOSE: [STLENO]: [[File]Fájl] The related
file/directory is: c:\FolderByDSC\Default.txt.
VERBOSE: [STLENO]: [[File]Fájl] Building file list
without using cache.
VERBOSE: [STLENO]: LCM: [ End Test ] [[File]Fájl] in 0.0110 seconds.
VERBOSE: [STLENO]: LCM: [ Start Set ] [[File]Fájl]
VERBOSE: [STLENO]: [[File]Fájl] The system cannot
find the file specified.
VERBOSE: [STLENO]: [[File]Fájl] The related
file/directory is: c:\FolderByDSC\Default.txt.
VERBOSE: [STLENO]: [[File]Fájl] Building file list
without using cache.
VERBOSE: [STLENO]: [[File]Fájl] Copying file
C:\PowerShell\Default.txt to c:\FolderByDSC\Default.txt.
VERBOSE: [STLENO]: LCM: [ End Set ] [[File]Fájl] in 0.0050 seconds.
VERBOSE: [STLENO]: LCM: [ End Resource ] [[File]Fájl]
VERBOSE: [STLENO]: LCM: [ Start Resource ] [[Registry]Reg]
VERBOSE: [STLENO]: LCM: [ Start Test ] [[Registry]Reg]
VERBOSE: [STLENO]: [[Registry]Reg] Registry key
value 'HKLM:\SOFTWARE\SoosTibor\AzEnErtekem' does not exist
VERBOSE: [STLENO]: LCM: [ End Test ] [[Registry]Reg] in 0.2150
seconds.
VERBOSE: [STLENO]: LCM: [ Start Set ] [[Registry]Reg]
VERBOSE: [STLENO]: [[Registry]Reg] (SET) Set
registry key value 'HKLM:\SOFTWARE\SoosTibor\AzEnErtekem' to 'DSC-vel
létrehozva' of type 'String'
VERBOSE: [STLENO]: LCM: [ End Set ] [[Registry]Reg] in 0.1050
seconds.
VERBOSE: [STLENO]: LCM: [ End Resource ] [[Registry]Reg]
VERBOSE: [STLENO]: LCM: [ End Set ]
VERBOSE: [STLENO]: LCM: [ End Set ] in 0.7740 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 0.829 seconds
A szószátyár kimeneten látszik, hogy az LCM végigmegy a konfigurációban említett minden erőforráson, elsőként ezeket teszteli, azaz megnézni, hogy kell-e ténylegesen bármit tenni. Ha a teszt valamilyen hibára fut, mint a fenti példában a fájl nem volt a cél elérési úton és a registry érték sem, akkor a teszt fázisból továbblép a beállítás (Set) fázisba, és pótolja a hiányosságokat.
Nézzük, mi történik, ha ugyanezt a konfigurációt mégegyszer végrehajtjuk:
PS C:\> Start-DscConfiguration -Path C:\PowerShell -Wait -Verbose -Force
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters,
''methodName' = SendConfigurationApply,'className' =
MSFT_DSCLocalConfigurationManager,'namespaceName' =
root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer STLENO with user sid
S-1-5-21-2156952311-2926033462-1066486086-1000.
VERBOSE: [STLENO]: LCM: [ Start Set ]
VERBOSE: [STLENO]: LCM: [ Start Resource ] [[File]Fájl]
VERBOSE: [STLENO]: LCM: [ Start Test ] [[File]Fájl]
VERBOSE: [STLENO]: [[File]Fájl] Building file list
without using cache.
VERBOSE: [STLENO]: [[File]Fájl] The destination
object was found and no action is required.
VERBOSE: [STLENO]: LCM: [ End Test ] [[File]Fájl] in 0.0130 seconds.
VERBOSE: [STLENO]: LCM: [ Skip Set ] [[File]Fájl]
VERBOSE: [STLENO]: LCM: [ End Resource ] [[File]Fájl]
VERBOSE: [STLENO]: LCM: [ Start Resource ] [[Registry]Reg]
VERBOSE: [STLENO]: LCM: [ Start Test ] [[Registry]Reg]
VERBOSE: [STLENO]: [[Registry]Reg] Found registry
key value 'HKLM:\SOFTWARE\SoosTibor\AzEnErtekem' with type 'String' and data
'DSC-vel létrehozva'
VERBOSE: [STLENO]: LCM: [ End Test ] [[Registry]Reg] in 0.3430
seconds.
VERBOSE: [STLENO]: LCM: [ Skip Set ] [[Registry]Reg]
VERBOSE: [STLENO]: LCM: [ End Resource ] [[Registry]Reg]
VERBOSE: [STLENO]: LCM: [ End Set ]
VERBOSE: [STLENO]: LCM: [ End Set ] in 0.9200 seconds.
VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 1.016 seconds
Látható, hogy itt a beállítási fázist kihagyta az LCM, hiszen minden a helyén volt már, nem volt szükség semmilyen változtatásra.