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:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: