Masalah dan Batasan yang Diketahui 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 bahkan jika kata sandi yang panjang dan kuat diinginkan. Perubahan yang melanggar ini memungkinkan kata sandi memiliki panjang arbitrer dalam konfigurasi DSC.
Resolusi: Buat ulang sertifikat dengan Penggunaan Kunci Penyandian Data atau Kunci Penyandian Kunci, 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 status 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
Ketika 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 produksinya
Cmdlet Invoke-DscResource
tidak mengembalikan pesan verbose, peringatan, dan kesalahan dalam urutan yang dihasilkan 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 yang akan disambungkan untuk penelusuran kesalahan. Untuk informasi selengkapnya, lihat Men-debug sumber daya DSC.
Resolusi: Temukan dan lampirkan ke runspace menggunakan cmdlet Get-PSHostProcessInfo
, Enter-PSHostProcess
, Get-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: Create 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'
}
}