Share via


Desired State Configuration (DSC) Bilinen Sorunlar ve Sınırlamalar

Hataya Neden Olan Değişiklik: DSC yapılandırmalarında parolaları şifrelemek/şifresini çözmek için kullanılan sertifikalar WMF 5.0 RTM yüklendikten sonra çalışmayabilir

WMF 4.0 ve WMF 5.0 Preview sürümlerinde DSC, yapılandırmadaki parolaların 121 karakterden uzun olmasını sağlamaz. DSC, uzun ve güçlü parola istense bile kısa parolalar kullanmaya zorlardı. Bu hataya neden olan değişiklik, parolaların DSC yapılandırmasında rastgele uzunlukta olmasını sağlar.

Çözünürlük: Sertifikayı Veri Şifreleme veya Anahtar Şifreleme Anahtarı kullanımı ve Belge Şifrelemesi Gelişmiş Anahtar kullanımı (1.3.6.1.4.1.311.80.1) ile yeniden oluşturun. Daha fazla bilgi için bkz . Protect-CmsMessage.

WMF 5.0 RTM yüklendikten sonra DSC cmdlet'leri başarısız olabilir

Start-DscConfiguration ve diğer DSC cmdlet'leri WMF 5.0 RTM yüklendikten sonra aşağıdaki hatayla başarısız olabilir:

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

Çözünürlük: Yükseltilmiş bir PowerShell oturumunda (Yönetici Olarak Çalıştır) aşağıdaki komutu çalıştırarak DSCEngineCache.mof dosyasını silin:

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

WMF 5.0 Production Preview üzerine WMF 5.0 RTM yüklüyse DSC cmdlet'leri çalışmayabilir

Çözünürlük: Yükseltilmiş bir PowerShell oturumunda aşağıdaki komutu çalıştırın (yönetici olarak çalıştırın):

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

DEBUGMode'da Get-DscConfiguration kullanırken LCM kararsız bir duruma geçebilir

LCM DebugMode'daysa, işlenmesini Get-DscConfiguration durdurmak için CTRL+C tuşlarına basmak, LCM'nin kararsız bir duruma gitmesine neden olabilir, böylece DSC cmdlet'lerinin çoğunluğu çalışmaz.

Çözünürlük: Cmdlet'i hata ayıklarken CTRL+C tuşlarına Get-DscConfiguration basmayın.

Stop-DscConfiguration DebugMode'da yanıt vermeyebilir

LCM DebugMode içindeyse, Stop-DscConfiguration tarafından başlatılan bir işlemi durdurmaya çalışırken yanıt vermeyebilir Get-DscConfiguration

Çözünürlük: Tarafından başlatılan Get-DscConfiguration işlemin hata ayıklamasını DSC kaynaklarında hata ayıklama bölümünde açıklandığı gibi tamamlayın.

DebugMode'da Ayrıntılı Hata İletisi gösterilmiyor

LCM DebugMode içindeyse, DSC Kaynaklarından ayrıntılı hata iletisi görüntülenmez.

Çözünürlük: Kaynaktan ayrıntılı iletileri görmek için DebugMode özelliğini devre dışı bırakma

Invoke-DscResource işlemleri Get-DscConfigurationStatus cmdlet'i tarafından alınamıyor

Herhangi bir kaynağın yöntemlerini doğrudan çağırmak için cmdlet'ini kullandıktan Invoke-DscResource sonra, bu işlemin kayıtları aracılığıyla Get-DscConfigurationStatusalınamaz.

Çözünürlük: Hiçbiri.

Get-DscConfigurationStatus, çekme döngüsü işlemlerini Tutarlılık türü olarak döndürür

Bir düğüm PULL yenileme moduna ayarlandığında, gerçekleştirilen her çekme işlemi için cmdlet işlem Get-DscConfigurationStatus türünü başlangıç yerine Tutarlılık olarak bildirir

Çözünürlük: Hiçbiri.

Invoke-DscResource cmdlet'i iletinin üretilme sırasına göre döndürülmüyor

Invoke-DscResource Cmdlet, LCM veya DSC kaynağı tarafından üretildikleri sırada ayrıntılı, uyarı ve hata iletileri döndürmez.

Çözünürlük: Hiçbiri.

DSC Kaynakları Invoke-DscResource ile kullanıldığında kolayca hata ayıklanamaz

LCM hata ayıklama modunda çalışırken, Invoke-DscResource cmdlet hata ayıklama için bağlanılacak runspace hakkında bilgi vermez. Daha fazla bilgi için bkz. DSC kaynaklarda hata ayıklama.

Çözünürlük: DSC kaynağında hata ayıklamak için , Enter-PSHostProcessGet-Runspace ve cmdlet'lerini Get-PSHostProcessInfokullanarak runspace'i bulun ve Debug-Runspace ekleyin.

# 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

Aynı düğüm için çeşitli Kısmi Yapılandırma belgeleri aynı kaynak adlarına sahip olamaz

Tek bir düğüme dağıtılan birkaç kısmi yapılandırma için kaynakların aynı adları çalışma zamanı hatasına neden olur.

Çözünürlük: Farklı kısmi yapılandırmalarda aynı kaynaklar için bile farklı adlar kullanın.

Start-DscConfiguration –UseExisting -Credential ile çalışmıyor

UseExisting parametresiyle kullanıldığında Start-DscConfigurationCredential parametresi yoksayılır. DSC, işleme devam etmek için varsayılan işlem kimliğini kullanır. Bu, uzak düğümde devam etmek için farklı bir kimlik bilgisi gerektiğinde hataya neden olur.

Çözünürlük: Uzak DSC işlemleri için CIM oturumunu kullanın:

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

DSC yapılandırmalarında Düğüm Adları Olarak IPv6 Adresleri

DSC yapılandırma betiklerinde düğüm adları olarak IPv6 adresleri bu sürümde desteklenmez.

Çözünürlük: Hiçbiri.

DSC Kaynaklarda Class-Based Hata Ayıklama

Bu sürümde sınıf tabanlı DSC Kaynaklarında hata ayıklama desteklenmez.

Çözünürlük: Hiçbiri.

DSC Class-Based Kaynağındaki $script kapsamında tanımlanan değişkenler ve işlevler, bir DSC Kaynağına yapılan birden çok çağrıda korunmaz

Yapılandırma kapsam içinde $script tanımlanmış değişkenleri veya işlevleri olan sınıf tabanlı bir kaynak kullanıyorsa birden çok ardışık çağrı Start-DSCConfiguration başarısız olur.

Çözünürlük: DSC Kaynak sınıfının kendisinde tüm değişkenleri ve işlevleri tanımlayın. Kapsam değişkeni/işlevi yok $script .

Bir kaynak PSDscRunAsCredential kullanırken DSC Kaynak Hata Ayıklama

Bir kaynak yapılandırmada PSDscRunAsCredential özelliğini kullanırken DSC Kaynak hata ayıklaması bu sürümde desteklenmez.

Çözünürlük: Hiçbiri.

DSC Bileşik Kaynakları için PsDscRunAsCredential desteklenmiyor

Çözünürlük: Varsa Credential özelliğini kullanın. Örnek ServiceSet ve WindowsFeatureSet

Get-DscResource -Sözdizimi PsDscRunAsCredential'ı doğru yansıtmıyor

Söz dizimi parametresi, kaynak bunu zorunlu olarak işaretlediğinde veya desteklemediğinde PsDscRunAsCredential'ı doğru yansıtmaz.

Çözünürlük: Hiçbiri. Ancak ISE'de yazma yapılandırması, IntelliSense kullanırken PsDscRunAsCredential özelliği hakkında doğru meta verileri yansıtır.

WindowsOptionalFeature, Windows 7'de kullanılamaz

WindowsOptionalFeature DSC kaynağı Windows 7'de kullanılamaz. Bu kaynak, DISM modülünü ve Windows işletim sisteminin Windows 8 ve daha yeni sürümlerinden başlayarak kullanılabilen DISM cmdlet'lerini gerektirir.

Sınıf tabanlı DSC kaynakları için Import-DscResource -ModuleVersion beklendiği gibi çalışmayabilir

Derleme düğümünde sınıf tabanlı DSC kaynak modülünün birden çok sürümü varsa, Import-DscResource -ModuleVersion belirtilen sürümü seçmez ve aşağıdaki derleme hatasıyla sonuçlanır.

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

Çözünürlük:ModuleSpecification nesnesini Aşağıda belirtilen RequiredVersion anahtarıyla ModuleName parametresine tanımlayarak gerekli sürümü içeri aktarın:

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

Kayıt defteri kaynağı gibi bazı DSC kaynaklarının isteği işlemesi uzun sürebilir.

1. Çözüm: Aşağıdaki klasörü düzenli aralıklarla temizleyen bir zamanlama görevi İçerik Oluşturucu.

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

Çözünürlük 2: Yapılandırmanın sonundaki CommandAnalysis klasörünü temizlemek için DSC yapılandırmasını değiştirin.

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'
    }
}