Men-debug sumber daya DSC

Berlaku Untuk: Windows PowerShell 5.0

Di PowerShell 5.0, fitur baru diperkenalkan dalam Desired State Configuration (DSC) yang memungkinkan Anda men-debug sumber daya DSC saat konfigurasi sedang diterapkan.

Mengaktifkan penelusuran kesalahan DSC

Sebelum dapat men-debug sumber daya, Anda harus mengaktifkan penelusuran kesalahan dengan memanggil cmdlet Enable-DscDebug . Cmdlet ini mengambil parameter wajib, BreakAll.

Anda dapat memverifikasi bahwa penelusuran kesalahan telah diaktifkan dengan melihat hasil panggilan ke Get-DscLocalConfigurationManager.

Output PowerShell berikut menunjukkan hasil mengaktifkan penelusuran kesalahan:

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>

Memulai konfigurasi dengan debug diaktifkan

Untuk men-debug sumber daya DSC, Anda memulai konfigurasi yang memanggil sumber daya tersebut. Untuk contoh ini, kita akan melihat konfigurasi sederhana yang memanggil sumber daya WindowsFeature untuk memastikan bahwa fitur "WindowsPowerShellWebAccess" diinstal:

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

Setelah mengkompilasi konfigurasi, mulai dengan memanggil Start-DscConfiguration. Konfigurasi akan berhenti ketika Local Configuration Manager (LCM) memanggil ke sumber daya pertama dalam konfigurasi. Jika Anda menggunakan -Verbose parameter dan -Wait , output menampilkan baris yang perlu Anda masukkan untuk memulai penelusuran kesalahan.

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

Pada titik ini, LCM telah memanggil sumber daya, dan sampai ke titik henti pertama. Tiga baris terakhir dalam output menunjukkan kepada Anda cara melampirkan ke proses dan mulai men-debug skrip sumber daya.

Men-debug skrip sumber daya

Mulai instans baru PowerShell ISE. Di panel konsol, masukkan tiga baris output terakhir dari Start-DscConfiguration output sebagai perintah, mengganti <credentials> dengan kredensial pengguna yang valid. Sekarang Anda akan melihat perintah yang terlihat mirip dengan:

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

Skrip sumber daya akan terbuka di panel skrip, dan debugger dihentikan di baris pertama fungsi Test-TargetResource (metode Test() dari sumber daya berbasis kelas). Sekarang Anda dapat menggunakan perintah debug di ISE untuk menelusuri skrip sumber daya, melihat nilai variabel, melihat tumpukan panggilan, dan sebagainya. Ingatlah bahwa setiap baris dalam skrip sumber daya (atau kelas) ditetapkan sebagai titik henti.

Menonaktifkan penelusuran kesalahan DSC

Setelah memanggil Enable-DscDebug, semua panggilan ke Start-DscConfiguration akan mengakibatkan konfigurasi memecah ke debugger. Untuk mengizinkan konfigurasi berjalan secara normal, Anda harus menonaktifkan penelusuran kesalahan dengan memanggil cmdlet Disable-DscDebug .

Catatan

Boot ulang tidak mengubah status debug LCM. Jika penelusuran kesalahan diaktifkan, memulai konfigurasi masih akan masuk ke debugger setelah reboot.

Lihat juga