Masalah dan Batasan Umum Konfigurasi Status yang Diinginkan (DSC)

Melanggar Perubahan: Sertifikat yang digunakan untuk mengenkripsi/mendekripsi kata sandi dalam konfigurasi DSC mungkin tidak berfungsi setelah menginstal WMF 5.0 RTM

Dalam rilis Pratinjau WMF 4.0 dan WMF 5.0, DSC tidak akan mengizinkan kata sandi dalam konfigurasi memiliki panjang lebih dari 121 karakter. DSC memaksa untuk menggunakan kata sandi pendek meskipun panjang dan kata sandi yang kuat diinginkan. Perubahan yang melanggar ini memungkinkan kata sandi memiliki panjang arbitrer dalam konfigurasi DSC.

Resolusi: Buat ulang sertifikat dengan penggunaan Kunci Encipherment Data atau Kunci Encipherment, dan penggunaan Kunci yang Ditingkatkan Enkripsi Dokumen (1.3.6.1.4.1.311.80.1). Untuk informasi selengkapnya, lihat Protect-CmsMessage.

Cmdlet DSC mungkin gagal setelah menginstal WMF 5.0 RTM

Start-DscConfiguration dan cmdlet DSC lainnya mungkin gagal setelah menginstal WMF 5.0 RTM dengan kesalahan berikut:

LCM failed to retrieve the property PendingJobStep from the object of class dscInternalCache .
+ CategoryInfo : ObjectNotFound: (root/Microsoft/...gurationManager:String) [], CimException
+ FullyQualifiedErrorId : MI RESULT 6
+ PSComputerName : localhost

Resolusi: Hapus DSCEngineCache.mof dengan menjalankan perintah berikut dalam sesi PowerShell yang ditinggikan (Jalankan sebagai Administrator):

Remove-Item -Path $env:SystemRoot\system32\Configuration\DSCEngineCache.mof

Cmdlet DSC mungkin tidak berfungsi jika WMF 5.0 RTM diinstal di atas Pratinjau Produksi WMF 5.0

Resolusi: Jalankan perintah berikut dalam sesi PowerShell yang ditinggikan (jalankan sebagai administrator):

mofcomp $env:windir\system32\wbem\DscCoreConfProv.mof

LCM dapat masuk ke status tidak stabil saat menggunakan Get-DscConfiguration di DebugMode

Jika LCM berada di DebugMode, menekan CTRL+C untuk menghentikan pemrosesan Get-DscConfiguration dapat menyebabkan LCM masuk ke keadaan tidak stabil sehingga sebagian besar cmdlet DSC tidak akan berfungsi.

Resolusi: Jangan tekan CTRL+C saat men-debug Get-DscConfiguration cmdlet.

Stop-DscConfiguration mungkin tidak merespons di DebugMode

Jika LCM berada di DebugMode, Stop-DscConfiguration mungkin tidak merespons saat mencoba menghentikan operasi yang dimulai oleh Get-DscConfiguration

Resolusi: Selesaikan penelusuran kesalahan operasi yang dimulai dengan Get-DscConfiguration seperti yang diuraikan dalam Men-debug sumber daya DSC.

Tidak ada Pesan Kesalahan Verbose yang ditampilkan di DebugMode

Jika LCM berada di DebugMode, tidak ada pesan kesalahan verbose yang ditampilkan dari Sumber Daya DSC.

Resolusi: Nonaktifkan DebugMode untuk melihat pesan verbose dari sumber daya

operasi Invoke-DscResource tidak dapat diambil oleh cmdlet Get-DscConfigurationStatus

Setelah menggunakan Invoke-DscResource cmdlet untuk langsung memanggil metode sumber daya apa pun, catatan operasi tersebut tidak dapat diambil melalui Get-DscConfigurationStatus.

Resolusi: Tidak.

Get-DscConfigurationStatus mengembalikan operasi siklus penarikan sebagai jenis Konsistensi

Saat simpul diatur ke mode refresh PULL, untuk setiap operasi penarikan yang dilakukan, Get-DscConfigurationStatus cmdlet melaporkan jenis operasi sebagai Konsistensi alih-alih Awal

Resolusi: Tidak.

cmdlet Invoke-DscResource tidak mengembalikan pesan dalam urutan diproduksi

Cmdlet Invoke-DscResource tidak mengembalikan pesan verbose, peringatan, dan kesalahan dalam urutan pembuatannya oleh LCM atau sumber daya DSC.

Resolusi: Tidak.

Sumber Daya DSC tidak dapat di-debug dengan mudah saat digunakan dengan Invoke-DscResource

Saat LCM berjalan dalam mode debug, Invoke-DscResource cmdlet tidak memberikan informasi tentang runspace untuk disambungkan untuk penelusuran kesalahan. Untuk informasi selengkapnya, lihat Men-debug sumber daya DSC.

Resolusi: Temukan dan lampirkan ke runspace menggunakan cmdlet Get-PSHostProcessInfo, , Enter-PSHostProcessGet-Runspace dan Debug-Runspace untuk men-debug sumber daya DSC.

# Find all the processes hosting PowerShell
Get-PSHostProcessInfo

ProcessName    ProcessId AppDomainName
-----------    --------- -------------
powershell          3932 DefaultAppDomain
powershell_ise      2304 DefaultAppDomain
WmiPrvSE            3396 DscPsPluginWkr_AppDomain

# Enter the process that is hosting DSC engine (WMI process with DscPsPluginWkr_Appdomain)
Enter-PSHostProcess -Id 3396 -AppDomainName DscPsPluginWkr_AppDomain

# Find all the available rusnspaces in that process
Get-Runspace

Id Name       ComputerName Type  State  Availability
-- ----       ------------ ----  -----  ------------
 2 Runspace2  localhost    Local Opened InBreakpoint
 5 RemoteHost localhost    Local Opened Busy

# Debug the runspace that is in **InBreakpoint** availability state
Debug-Runspace -Id 2

Berbagai dokumen Konfigurasi Parsial untuk simpul yang sama tidak boleh memiliki nama sumber daya yang identik

Untuk beberapa konfigurasi parsial yang disebarkan ke satu simpul, nama sumber daya yang identik menyebabkan kesalahan run time.

Resolusi: Gunakan nama yang berbeda untuk sumber daya yang sama dalam konfigurasi parsial yang berbeda.

Start-DscConfiguration –UseExisting tidak berfungsi dengan -Credential

Saat menggunakan Start-DscConfiguration dengan parameter UseExisting , parameter Kredensial diabaikan. DSC menggunakan identitas proses default untuk melanjutkan operasi. Ini menyebabkan kesalahan ketika kredensial yang berbeda diperlukan untuk melanjutkan pada simpul jarak jauh.

Resolusi: Gunakan sesi CIM untuk operasi DSC jarak jauh:

$session = New-CimSession -ComputerName $node -Credential $credential
Start-DscConfiguration -UseExisting -CimSession $session

Alamat IPv6 sebagai Nama Simpul dalam konfigurasi DSC

Alamat IPv6 sebagai nama simpul dalam skrip konfigurasi DSC tidak didukung dalam rilis ini.

Resolusi: Tidak.

Penelusuran kesalahan Class-Based Sumber Daya DSC

Penelusuran kesalahan Sumber Daya DSC berbasis kelas tidak didukung dalam rilis ini.

Resolusi: Tidak.

Variabel dan fungsi yang ditentukan dalam cakupan $script di DSC Class-Based Resource tidak dipertahankan di beberapa panggilan ke Sumber Daya DSC

Beberapa panggilan berturut-turut gagal Start-DSCConfiguration jika konfigurasi menggunakan sumber daya berbasis kelas apa pun yang memiliki variabel atau fungsi yang ditentukan dalam $script cakupan.

Resolusi: Tentukan semua variabel dan fungsi di kelas Sumber Daya DSC itu sendiri. Tidak ada $script variabel/fungsi cakupan.

Penelusuran Kesalahan Sumber Daya DSC saat sumber daya menggunakan PSDscRunAsCredential

Penelusuran kesalahan Sumber Daya DSC saat sumber daya menggunakan properti PSDscRunAsCredential dalam konfigurasi tidak didukung dalam rilis ini.

Resolusi: Tidak.

PsDscRunAsCredential tidak didukung untuk Sumber Daya Komposit DSC

Resolusi: Gunakan properti Kredensial jika tersedia. Contoh ServiceSet dan WindowsFeatureSet

Get-DscResource -Sintaks tidak mencerminkan PsDscRunAsCredential dengan benar

Parameter Sintaks tidak mencerminkan PsDscRunAsCredential dengan benar ketika sumber daya menandainya sebagai wajib atau tidak mendukungnya.

Resolusi: Tidak. Namun, konfigurasi penulisan di ISE mencerminkan metadata yang benar tentang properti PsDscRunAsCredential saat menggunakan IntelliSense.

WindowsOptionalFeature tidak tersedia di Windows 7

Sumber daya DSC WindowsOptionalFeature tidak tersedia di Windows 7. Sumber daya ini memerlukan modul DISM, dan cmdlet DISM yang tersedia mulai dari Windows 8 dan rilis sistem operasi Windows yang lebih baru.

Untuk sumber daya DSC berbasis kelas, Import-DscResource -ModuleVersion mungkin tidak berfungsi seperti yang diharapkan

Jika simpul kompilasi memiliki beberapa versi modul sumber daya DSC berbasis kelas, Import-DscResource -ModuleVersion tidak memilih versi yang ditentukan dan menghasilkan kesalahan kompilasi berikut.

ImportClassResourcesFromModule : Exception calling "ImportClassResourcesFromModule" with "3" argument(s):
 "Keyword 'MyTestResource' already defined in the configuration."
At C:\Windows\system32\WindowsPowerShell\v1.0\Modules\PSDesiredStateConfiguration\PSDesiredStateConfiguration.psm1:2035 char:35
+ ... rcesFound = ImportClassResourcesFromModule -Module $mod -Resources $r ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [ImportClassResourcesFromModule], MethodInvocationException
    + FullyQualifiedErrorId : PSInvalidOperationException,ImportClassResourcesFromModule

Resolusi: Impor versi yang diperlukan dengan mendefinisikan objek ModuleSpecification ke parameter ModuleName dengan kunci RequiredVersion yang ditentukan sebagai berikut:

Import-DscResource -ModuleName @{ModuleName='MyModuleName';RequiredVersion='1.2'}

Beberapa sumber daya DSC seperti sumber daya registri mungkin mulai memakan waktu lama untuk memproses permintaan.

Resolusi 1: Buat tugas jadwal yang membersihkan folder berikut secara berkala.

$env:windir\system32\config\systemprofile\AppData\Local\Microsoft\Windows\PowerShell\CommandAnalysis

Resolusi 2: Ubah konfigurasi DSC untuk membersihkan folder CommandAnalysis di akhir konfigurasi.

Configuration $configName
{

   # User Data
    Registry SetRegisteredOwner
    {
        Ensure = 'Present'
        Force = $True
        Key = $Node.RegisteredKey
        ValueName = $Node.RegisteredOwnerValue
        ValueType = 'String'
        ValueData = $Node.RegisteredOwnerData
    }
    #
    # Script to delete the config
    #
    script DeleteCommandAnalysisCache
    {
        DependsOn = "[Registry]SetRegisteredOwner"
        getscript = "@{}"
        testscript = 'Remove-Item -Path $env:windir\system32\config\systemprofile\AppData\Local\Microsoft\Windows\PowerShell\CommandAnalysis -Force -Recurse -ErrorAction SilentlyContinue -ErrorVariable ev | out-null;$true'
        setscript = '$true'
    }
}