DSC-erőforrások hibakeresése

A következőre vonatkozik: Windows PowerShell 5.0

A PowerShell 5.0-ban egy új funkció jelent meg a Desired State Configuration (DSC) szolgáltatásban, amely lehetővé teszi egy DSC-erőforrás hibakeresését konfiguráció alkalmazásakor.

DSC-hibakeresés engedélyezése

Mielőtt hibakeresést végezhet egy erőforrásban, engedélyeznie kell a hibakeresést az Enable-DscDebug parancsmag meghívásával. Ez a parancsmag kötelező paramétert, a BreakAll paramétert használja.

A hibakeresés engedélyezését a Get-DscLocalConfigurationManager hívásának eredményével ellenőrizheti.

A következő PowerShell-kimenet a hibakeresés engedélyezésének eredményét mutatja:

PS C:\DebugTest> $LCM = Get-DscLocalConfigurationManager

PS C:\DebugTest> $LCM.DebugMode
NONE

PS C:\DebugTest> Enable-DscDebug -BreakAll

PS C:\DebugTest> $LCM = Get-DscLocalConfigurationManager

PS C:\DebugTest> $LCM.DebugMode
ForceModuleImport
ResourceScriptBreakAll

PS C:\DebugTest>

Konfiguráció indítása a hibakeresés engedélyezésével

Egy DSC-erőforrás hibakereséséhez elindít egy konfigurációt, amely meghívja az erőforrást. Ebben a példában egy egyszerű konfigurációt vizsgáljuk meg, amely meghívja a WindowsFeature erőforrást , hogy a "WindowsPowerShellWebAccess" szolgáltatás telepítve legyen:

Configuration PSWebAccess
    {
    Import-DscResource -ModuleName 'PsDesiredStateConfiguration'
    Node localhost
        {
        WindowsFeature PSWA
            {
            Name = 'WindowsPowerShellWebAccess'
            Ensure = 'Present'
            }
        }
    }
PSWebAccess

A konfiguráció összeállítása után indítsa el a Start-DscConfiguration hívásával. A konfiguráció leáll, amikor a Helyi Configuration Manager (LCM) meghívja a konfiguráció első erőforrását. Ha a és -Wait a -Verbose paramétert használja, a kimenet megjeleníti azokat a sorokat, amelyet be kell írnia a hibakeresés megkezdéséhez.

Start-DscConfiguration .\PSWebAccess -Wait -Verbose
VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendConfigurationApply,'className' = MSFT_DSCLocalConfiguration
Manager,'namespaceName' = root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer TEST-SRV with user sid S-1-5-21-2127521184-1604012920-1887927527-108583.
VERBOSE: An LCM method call arrived from computer TEST-SRV with user sid S-1-5-21-2127521184-1604012920-1887927527-108583.
VERBOSE: [TEST-SRV]: LCM:  [ Start  Set      ]
WARNING: [TEST-SRV]:                            [DSCEngine] Warning LCM is in Debug 'ResourceScriptBreakAll' mode.  Resource script processing will
be stopped to wait for PowerShell script debugger to attach.
VERBOSE: [TEST-SRV]:                            [DSCEngine] Importing the module C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\PSDesiredStateCo
nfiguration\DscResources\MSFT_RoleResource\MSFT_RoleResource.psm1 in force mode.
VERBOSE: [TEST-SRV]: LCM:  [ Start  Resource ]  [[WindowsFeature]PSWA]
VERBOSE: [TEST-SRV]: LCM:  [ Start  Test     ]  [[WindowsFeature]PSWA]
VERBOSE: [TEST-SRV]:                            [[WindowsFeature]PSWA] Importing the module MSFT_RoleResource in force mode.
WARNING: [TEST-SRV]:                            [[WindowsFeature]PSWA] Resource is waiting for PowerShell script debugger to attach.
Use the following commands to begin debugging this resource script:
Enter-PSSession -ComputerName TEST-SRV -Credential <credentials>
Enter-PSHostProcess -Id 9000 -AppDomainName DscPsPluginWkr_AppDomain
Debug-Runspace -Id 9

Ezen a ponton az LCM meghívta az erőforrást, és az első törésponthoz érkezett. A kimenet utolsó három sora bemutatja, hogyan csatolhatja a folyamatot, és hogyan kezdheti el az erőforrásszkript hibakeresését.

Az erőforrásszkript hibakeresése

Indítsa el a PowerShell ISE új példányát. A konzolpanelen adja meg a kimenet utolsó három sorát Start-DscConfiguration parancsként, és cserélje le <credentials> érvényes felhasználói hitelesítő adatokkal. Ekkor megjelenik egy, a következőhöz hasonló üzenet:

[TEST-SRV]: [DBG]: [Process:9000]: [RemoteHost]: PS C:\DebugTest>>

Az erőforrásszkript megnyílik a szkriptpanelen, és a hibakereső a Test-TargetResource függvény (egy osztályalapú erőforrás Test() metódusának első sorában áll le. Most az ISE hibakeresési parancsaival lépegethet az erőforrás-szkripten, megtekintheti a változóértékeket, megtekintheti a hívásvermet stb. Ne feledje, hogy az erőforrásszkript (vagy osztály) minden sora töréspontként van beállítva.

A DSC hibakeresésének letiltása

Az Enable-DscDebug hívása után a Start-DscConfiguration összes hívása azt eredményezi, hogy a konfiguráció betörik a hibakeresőbe. A konfigurációk normál futtatásának engedélyezéséhez le kell tiltania a hibakeresést a Disable-DscDebug parancsmag meghívásával.

Megjegyzés

Az újraindítás nem módosítja az LCM hibakeresési állapotát. Ha a hibakeresés engedélyezve van, a konfiguráció indítása újraindítás után is be fog törni a hibakeresőbe.

Lásd még: