Függőségek beállítása erőforrások között

Tehát egészítsük ki a konfigurációnkat két újabb erőforrással, ahol a konténereket hozzuk létre a fájl és a registry érték számára:

configuration FajlRegLegyenOtt {

param(

    [switch] $rollback

)

    Import-DscResource –ModuleName ’PSDesiredStateConfiguration’

    if($rollback){

        $ensure = 'Absent'

    }

    else{

        $ensure = 'Present'

    }

    Node localhost {

        File Konyvtar {

            Type = 'Directory'

            DestinationPath = 'C:\FolderByDSC'

            Ensure = $ensure

            Force = $true

        }

 

        File Fájl {

            DependsOn = '[File]Konyvtar'

            Ensure = $ensure

            Type = 'File'

            SourcePath = 'C:\PowerShell\Default.txt'

            DestinationPath = 'c:\FolderByDSC\Default.txt'

            MatchSource = $true

        }

 

        Registry Reg {

            DependsOn = '[Registry]RegKey'

            Key = "HKLM:\SOFTWARE\SoosTibor"

            ValueName = "AzEnErtekem"

            Ensure = $ensure

            ValueData = "DSC-vel létrehozva"

            ValueType = "String"

        }

 

        Registry RegKey {

            Key = "HKLM:\SOFTWARE\SoosTibor"

            ValueName = ""

            Ensure = $ensure

        }

    }

}

Beraktam tehát egy újabb File erőforrást Konyvtar néven, és egy Registry erőforrást RegKey néven. A korábban létrehozott erőforrásokban pedig beraktam egy újabb tulajdonságot DependsOn néven,  amiben hivatkozom a konténert létrehozó megfelelő új erőforrásra. Látható, hogy az erőforrások sorrendje tetszőleges lehet a konfiguráción belül, a lényeges a DependsOn paraméterrel ábrázolt függőségi viszonyok.

Ha ezek után futtatom és végrehajtom a konfigurációt, majd visszavonom, akkor már tényleg minden kitakarítódik:

PS C:\> Start-DscConfiguration -Wait -Force -Verbose -Path C:\PowerShell

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]Konyvtar]

VERBOSE: [STLENO]: LCM:  [ Start  Test     ]  [[File]Konyvtar]

VERBOSE: [STLENO]: LCM:  [ End    Test     ]  [[File]Konyvtar]  in 0.0010

seconds.

VERBOSE: [STLENO]: LCM:  [ Start  Set      ]  [[File]Konyvtar]

VERBOSE: [STLENO]:                            [[File]Konyvtar] C:\FolderByDSC

was successfully deleted.

VERBOSE: [STLENO]: LCM:  [ End    Set      ]  [[File]Konyvtar]  in 0.0020

seconds.

VERBOSE: [STLENO]: LCM:  [ End    Resource ]  [[File]Konyvtar]

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 path specified.

VERBOSE: [STLENO]:                            [[File]Fájl] The related

file/directory is: c:\FolderByDSC\Default.txt.

VERBOSE: [STLENO]:                            [[File]Fájl] The destination

object was not found and no action is required.

VERBOSE: [STLENO]: LCM:  [ End    Test     ]  [[File]Fájl]  in 0.0020 seconds.

VERBOSE: [STLENO]: LCM:  [ Skip   Set      ]  [[File]Fájl]

VERBOSE: [STLENO]: LCM:  [ End    Resource ]  [[File]Fájl]

VERBOSE: [STLENO]: LCM:  [ Start  Resource ]  [[Registry]RegKey]

VERBOSE: [STLENO]: LCM:  [ Start  Test     ]  [[Registry]RegKey]

VERBOSE: [STLENO]:                            [[Registry]RegKey] Registry key

'HKLM:\SOFTWARE\SoosTibor' exists

VERBOSE: [STLENO]: LCM:  [ End    Test     ]  [[Registry]RegKey]  in 0.0280

seconds.

VERBOSE: [STLENO]: LCM:  [ Start  Set      ]  [[Registry]RegKey]

VERBOSE: [STLENO]:                            [[Registry]RegKey] (REMOVAL)

Registry key 'HKLM:\SOFTWARE\SoosTibor' removed

VERBOSE: [STLENO]: LCM:  [ End    Set      ]  [[Registry]RegKey]  in 0.0420

seconds.

VERBOSE: [STLENO]: LCM:  [ End    Resource ]  [[Registry]RegKey]

VERBOSE: [STLENO]: LCM:  [ Start  Resource ]  [[Registry]Reg]

VERBOSE: [STLENO]: LCM:  [ Start  Test     ]  [[Registry]Reg]

VERBOSE: [STLENO]:                            [[Registry]Reg] Registry key

'HKLM:\SOFTWARE\SoosTibor' does not exist

VERBOSE: [STLENO]: LCM:  [ End    Test     ]  [[Registry]Reg]  in 0.0340

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.2200 seconds.

VERBOSE: Operation 'Invoke CimMethod' complete.

VERBOSE: Time taken for configuration job to complete is 0.271 seconds

Igaz, ilyenkor a sorrend nem cserélődik meg, azaz ugyanúgy előbb a könyvtár és a registry kulcs törlődik, majd a fájl és registry érték törlésére már nincs is szükség, mert azok is eltűntek a konténereik kitörlésével. (Ezért kellett a könyvtár erőforrásnál a Force = $true, mert a könyvtár törlése alaphelyzetben csak üres könyvtárra működik.)



Word To HTML Converter