Desired State Configuration (DSC) bekende problemen en beperkingenDesired State Configuration (DSC) Known Issues and Limitations

Breken wijziging: Certificaten gebruikt voor het versleutelen/ontsleutelen wachtwoorden in DSC-configuraties werken mogelijk niet na het installeren van WMF 5.0 RTMBreaking Change: Certificates used to encrypt/decrypt passwords in DSC configurations may not work after installing WMF 5.0 RTM

In de WMF 4.0 en WMF 5.0 Preview-versies, DSC zou niet toestaan dat wachtwoorden in de configuratie van de lengte van meer dan 121 tekens.In WMF 4.0 and WMF 5.0 Preview releases, DSC would not allow passwords in the configuration to be of length more than 121 characters. DSC is geforceerd korte wachtwoorden gebruiken, zelfs als langdurige en een sterk wachtwoord is vereist.DSC was forcing to use short passwords even if lengthy and strong password was desired. Deze laatste wijziging kan wachtwoorden van willekeurige lengte in de DSC-configuratie.This breaking change allows passwords to be of arbitrary length in the DSC configuration.

Oplossing: opnieuw maken van het certificaat met gegevenscodering of sleutel uitwisselen sleutel gebruiks- en Document versleuteling Enhanced Key usage (1.3.6.1.4.1.311.80.1).Resolution: Re-create the certificate with Data Encipherment or Key Encipherment Key usage, and Document Encryption Enhanced Key usage (1.3.6.1.4.1.311.80.1). TechNet-artikel https://technet.microsoft.com/library/dn807171.aspx bevat meer informatie.Technet article https://technet.microsoft.com/library/dn807171.aspx has more information.

DSC-cmdlets mislukken na het installeren van WMF 5.0 RTMDSC cmdlets may fail after installing WMF 5.0 RTM

Start DscConfiguration en andere cmdlets DSC mislukken na het installeren van WMF 5.0 RTM met de volgende fout:Start-DscConfiguration and other DSC cmdlets may fail after installing WMF 5.0 RTM with the following error:

    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

Oplossing: DSCEngineCache.mof verwijderen met de volgende opdracht in een verhoogde PowerShell-sessie (als Administrator uitvoeren):Resolution: Delete DSCEngineCache.mof by running the following command in an elevated PowerShell session (Run as Administrator):

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

DSC-cmdlets werkt mogelijk niet als WMF 5.0 RTM bovenop WMF 5.0 productie Preview is geïnstalleerdDSC cmdlets may not work if WMF 5.0 RTM is installed on top of WMF 5.0 Production Preview

Oplossing: Voer de volgende opdracht in een verhoogde PowerShell-sessie (als administrator uitvoeren):Resolution: Run the following command in an elevated PowerShell session (run as administrator):

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

LCM kunt in instabiel gaan tijdens het gebruik van Get-DscConfiguration in fouten opsporen-modusLCM can go into an unstable state while using Get-DscConfiguration in DebugMode

Als LCM in fouten opsporen-modus is, drukt u op CTRL + C om de verwerking van Get-DscConfiguration stoppen kan leiden tot LCM om te gaan naar instabiel dergelijke die meerderheid van de DSC-cmdlets, werken niet.If LCM is in DebugMode, pressing CTRL+C to stop the processing of Get-DscConfiguration can cause LCM to go into an unstable state such that majority of DSC cmdlets won’t work.

Oplossing: niet druk op CTRL + C tijdens het opsporen van de cmdlet Get-DscConfiguration.Resolution: Don’t press CTRL+C while debugging Get-DscConfiguration cmdlet.

Stop DscConfiguration loopt in fouten opsporen-modusStop-DscConfiguration may hang in DebugMode

Als LCM fouten opsporen-modus, loopt Stop DscConfiguration terwijl bij stoppen van een bewerking door Get-DscConfiguration gestartIf LCM is in DebugMode, Stop-DscConfiguration may hang while trying to stop an operation started by Get-DscConfiguration

Oplossing: voltooien foutopsporing van de bewerking gestart door Get-DscConfiguration, zoals wordt beschreven in de sectie 'foutopsporing DSC-resources'.Resolution: Finish the debugging of the operation started by Get-DscConfiguration as outlined in section ‘Debugging DSC resources’.

Er is geen uitgebreide foutberichten worden weergegeven in fouten opsporen-modusNo Verbose Error Messages are shown in DebugMode

Als LCM in fouten opsporen-modus is, worden er geen uitgebreide foutberichten van DSC-Resources weergegeven.If LCM is in DebugMode, no verbose error messages are displayed from DSC Resources.

Oplossing: uitschakelen fouten opsporen-modus om te zien van uitgebreide berichten uit de bronResolution: Disable DebugMode to see verbose messages from the resource

Aanroepen DscResource bewerkingen kunnen niet worden opgehaald door de cmdlet Get-DscConfigurationStatusInvoke-DscResource operations cannot be retrieved by Get-DscConfigurationStatus cmdlet

Als u met de cmdlet Invoke-DscResource rechtstreeks aanroepen van een resource-methoden, kunnen niet de records van deze bewerking worden opgehaald via de Get-DscConfigurationStatus op een later tijdstip.After using Invoke-DscResource cmdlet to directly invoke any resource’s methods, the records of such operation cannot be retrieved through Get-DscConfigurationStatus at a later time.

Oplossing: geen.Resolution: None.

Get-DscConfigurationStatus retourneert pull cyclus bewerkingen als type consistentieGet-DscConfigurationStatus returns pull cycle operations as type Consistency

Wanneer een knooppunt is ingesteld op PULL vernieuwingsmodus voor elk pullbewerking uitgevoerd, de cmdlet Get-DscConfigurationStatus rapporten van het bewerkingstype als consistentie in plaats van initiëleWhen a node is set to PULL refresh mode, for each pull operation performed, Get-DscConfigurationStatus cmdlet reports the operation type as Consistency instead of Initial

Oplossing: geen.Resolution: None.

Aanroepen DscResource cmdlet retourneert geen bericht in de volgorde waarin die ze zijn geproduceerdInvoke-DscResource cmdlet does not return message in the order they were produced

De cmdlet Invoke-DscResource retourneert geen uitgebreide, waarschuwing, en foutberichten in de volgorde waarin die ze zijn geproduceerd door LCM of de DSC-resource.The Invoke-DscResource cmdlet does not return verbose, warning, and error messages in the order they were produced by LCM or the DSC resource.

Oplossing: geen.Resolution: None.

Foutopsporing eenvoudig DSC-Resources kan niet worden uitgevoerd in combinatie met Invoke-DscResourceDSC Resources cannot be debugged easily when used with Invoke-DscResource

Wanneer LCM wordt uitgevoerd in de foutopsporingsmodus (Zie foutopsporing DSC-resources voor meer informatie), de cmdlet Invoke-DscResource geeft geen informatie over runspace verbinding maken met voor foutopsporing.When LCM is running in debug mode (see Debugging DSC resources for more details), Invoke-DscResource cmdlet does not give information about runspace to connect to for debugging. Oplossing: ontdekken en te koppelen aan de runspace met behulp van cmdlets Get-PSHostProcessInfo, Enter PSHostProcess , Get Runspace en Foutopsporing Runspace voor foutopsporing van de DSC-resource.Resolution: Discover and attach to the runspace using cmdlets Get-PSHostProcessInfo, Enter-PSHostProcess , Get-Runspace and Debug-Runspace to debug the DSC resource.

# 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

Verschillende gedeeltelijke configuratie documenten voor hetzelfde knooppunt geen identieke resourcenamenVarious Partial Configuration documents for same node cannot have identical resource names

Voor verschillende gedeeltelijke configuraties die zijn geïmplementeerd op één knooppunt, runtimefout identieke namen van bronnen oorzaak.For several partial configurations that are deployed onto a single node, identical names of resources cause run time error.

Oplossing: Gebruik verschillende namen voor zelfs dezelfde bronnen in de andere gedeeltelijke configuraties.Resolution: Use different names for even same resources in different partial configurations.

Start DscConfiguration – UseExisting werkt niet met de - referentiesStart-DscConfiguration –UseExisting does not work with -Credential

Als u Start DscConfiguration met de parameter – UseExisting, de – referentie parameter wordt genegeerd.When using Start-DscConfiguration with –UseExisting parameter, the –Credential parameter is ignored. Standaard-procesidentiteit DSC gebruikt om door te gaan van de bewerking.DSC uses default process identity to proceed the operation. Hiermee wordt de fout veroorzaakt wanneer er een andere referentie nodig is om door te gaan op een extern knooppunt.This causes error when a different credential is needed to proceed on remote node.

Oplossing: gebruik CIM-sessie voor externe DSC-bewerkingen:Resolution: Use CIM session for remote DSC operations:

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

IPv6-adressen als knooppuntnamen in DSC-configuratiesIPv6 Addresses as Node Names in DSC configurations

IPv6-adressen als knooppuntnamen in scripts voor DSC-configuratie worden niet ondersteund in deze release.IPv6 addresses as node names in DSC configuration scripts are not supported in this release.

Oplossing: geen.Resolution: None.

Foutopsporing van een klasse gebaseerde DSC-ResourcesDebugging of Class-Based DSC Resources

Foutopsporing van DSC-Resources op basis van een klasse wordt niet ondersteund in deze release.Debugging of class-based DSC Resources is not supported in this release.

Oplossing: geen.Resolution: None.

Variabelen & functies die zijn gedefinieerd in het bereik van $script in DSC-Resource op basis van een klasse zijn niet behouden in meerdere aanroepen naar een DSC-ResourceVariables & Functions defined in $script scope in DSC Class-Based Resource are not preserved across multiple calls to a DSC Resource

Meerdere opeenvolgende aanroepen naar Start DSCConfiguration mislukt als de configuratie met behulp van een resource op basis van een klasse die variabelen of functies die zijn gedefinieerd in $script bereik heeft.Multiple consecutive calls to Start-DSCConfiguration will fail if configuration is using any class-based resource which has variables or functions defined in $script scope.

Oplossing: Definieer alle variabelen en functies in DSC-Resource klasse zelf.Resolution: Define all variables and functions in DSC Resource class itself. Functies/No $script bereik variabelen.No $script scope variables/functions.

DSC-Resource foutopsporing bij gebruik van een resource PSDscRunAsCredentialDSC Resource Debugging when a resource is using PSDscRunAsCredential

DSC-Resource foutopsporing bij het gebruik van een resource de PSDscRunAsCredential eigenschap in de configuratie is niet suported in deze release.DSC Resource debugging when a resource is using the PSDscRunAsCredential property in the configuration is not suported in this release.

Oplossing: geen.Resolution: None.

PsDscRunAsCredential wordt niet ondersteund voor samengestelde DSC-ResourcesPsDscRunAsCredential is not supported for DSC Composite Resources

Oplossing: gebruik referentie-eigenschap indien beschikbaar.Resolution: Use Credential property if available. Voorbeeld van de ServiceSet en WindowsFeatureSetExample ServiceSet and WindowsFeatureSet

Get-DscResource-syntaxis komt niet overeen met PsDscRunAsCredential correctGet-DscResource -Syntax does not reflect PsDscRunAsCredential correctly

Get-DscResource-syntaxis komt niet overeen met PsDscRunAsCredential correct wanneer bron is gemarkeerd als verplicht of dit niet wordt ondersteund.Get-DscResource -Syntax does not reflect PsDscRunAsCredential correctly when resource marks it as mandatory or does not support it.

Oplossing: geen.Resolution: None. Echter weerspiegelt authoring configuratie in ISE juiste metagegevens over PsDscRunAsCredential eigenschap bij gebruik van IntelliSense.However, authoring configuration in ISE reflects correct metadata about PsDscRunAsCredential property when using IntelliSense.

WindowsOptionalFeature is niet beschikbaar in Windows 7WindowsOptionalFeature is not available in Windows 7

De WindowsOptionalFeature DSC-resource is niet beschikbaar in Windows 7.The WindowsOptionalFeature DSC resource is not available in Windows 7. Deze bron moet DISM-cmdlets die beschikbaar zijn in Windows 8 en nieuwere versies van het Windows-besturingssysteem wordt gestart en de DISM-module.This resource requires the DISM module, and DISM cmdlets that are available starting in Windows 8 and newer releases of the Windows operating system.

Voor klasse gebaseerde DSC-resources importeren DscResource - ModuleVersion werkt mogelijk niet zoals verwachtFor Class-based DSC resources, Import-DscResource -ModuleVersion may not work as expected

Als de compilatie-knooppunt meerdere versies van een module DSC resource op basis van een klasse heeft Import-DscResource -ModuleVersion niet de opgegeven versie opneemt en de resultaten in de volgende fout bij schemacompilatie.If the compilation node has multiple version of a class-based DSC resource module, Import-DscResource -ModuleVersion does not pick the specified version and results in following compilation error.

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

Oplossing: importeren van de vereiste versie door te definiëren de ModuleSpecification object toe aan de -ModuleName met RequiredVersion sleutel die is opgegeven als volgt:Resolution: Import the required version by defining the ModuleSpecification object to the -ModuleName with RequiredVersion key specified as follows:

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

Sommige DSC-resources zoals register resource gaan kunnen lang duren om de aanvraag te verwerken.Some DSC resources like registry resource may start to take a long time to process the request.

Resolution1: een geplande taak periodiek opruimen van de volgende map maken.Resolution1: Create a schedule task that cleans up the following folder periodically.

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

Resolution2: wijzigen van de DSC-configuratie om op te schonen de CommandAnalysis map aan het einde van de configuratie.Resolution2: Change the DSC configuration to clean up the CommandAnalysis folder at the end of the configuration.

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