Megosztás a következőn keresztül:


Desired State Configuration (DSC) ismert problémái és korlátozásai

Kompatibilitástörő változás: Előfordulhat, hogy a DSC-konfigurációkban a jelszavak titkosításához/visszafejtéséhez használt tanúsítványok nem működnek a WMF 5.0 RTM telepítése után

A WMF 4.0 és a WMF 5.0 előzetes kiadásaiban a DSC nem engedélyezi a konfigurációban lévő jelszavak 121 karakternél hosszabb hosszát. A DSC arra kényszeríti, hogy rövid jelszavakat használjon, még akkor is, ha hosszú és erős jelszóra volt szükség. Ez a kompatibilitástörő változás lehetővé teszi, hogy a jelszavak tetszőleges hosszúságúak legyenek a DSC-konfigurációban.

Felbontás: Hozza létre újra a tanúsítványt adattitkosítással vagy kulcstitkosítási kulcshasználattal és a dokumentumtitkosítás kibővített kulcshasználatával (1.3.6.1.4.1.311.80.1). További információ: Protect-CmsMessage.

A DSC-parancsmagok meghiúsulhatnak a WMF 5.0 RTM telepítése után

Start-DscConfiguration és más DSC-parancsmagok meghiúsulhatnak a WMF 5.0 RTM telepítése után a következő hibával:

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

Felbontás: A DSCEngineCache.mof törléséhez futtassa a következő parancsot egy emelt szintű PowerShell-munkamenetben (futtatás rendszergazdaként):

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

Előfordulhat, hogy a DSC-parancsmagok nem működnek, ha a WMF 5.0 RTM telepítve van a WMF 5.0 éles előzetes verziójára

Felbontás: Futtassa a következő parancsot egy emelt szintű PowerShell-munkamenetben (futtatás rendszergazdaként):

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

Az LCM instabil állapotba léphet a debugMode Get-DscConfiguration használatakor

Ha az LCM a DebugMode-ban van, a CTRL+C billentyűkombináció lenyomásával állítsa le a feldolgozást Get-DscConfiguration , az LCM instabil állapotba léphet, így a DSC-parancsmagok többsége nem fog működni.

Felbontás: Ne nyomja le a CTRL+C billentyűkombinációt a parancsmag hibakeresése Get-DscConfiguration közben.

Stop-DscConfiguration nem válaszolhat a DebugMode-ban

Ha az LCM a DebugMode-ban van, előfordulhat, Stop-DscConfiguration hogy nem válaszol, amikor egy által indított műveletet próbál leállítani Get-DscConfiguration

Felbontás: Fejezze be a DSC-erőforrások hibakeresésével elindított Get-DscConfiguration művelet hibakeresését.

Nem jelennek meg részletes hibaüzenetek a DebugMode-ban

Ha az LCM a DebugMode-ban található, nem jelennek meg részletes hibaüzenetek a DSC-erőforrásokból.

Felbontás: A DebugMode letiltása az erőforrás részletes üzeneteinek megtekintéséhez

Invoke-DscResource műveleteket nem lehet lekérni Get-DscConfigurationStatus parancsmaggal

Miután parancsmaggal Invoke-DscResource közvetlenül meghívta az erőforrások metódusait, az ilyen művelet rekordjai nem kérhetők le a használatával Get-DscConfigurationStatus.

Felbontás: Nincs.

Get-DscConfigurationStatus a lekérési ciklus műveleteit Konzisztencia típusként adja vissza

Ha egy csomópont LEKÉRÉSes frissítési módra van állítva, minden végrehajtott Get-DscConfigurationStatus lekéréses művelet esetén a parancsmag a művelet típusát Konzisztenciaként jelenti a Kezdeti helyett

Felbontás: Nincs.

Invoke-DscResource parancsmag nem ad vissza üzenetet a legyártott sorrendben

A Invoke-DscResource parancsmag nem ad vissza részletes, figyelmeztető és hibaüzeneteket az LCM vagy a DSC-erőforrás által létrehozott sorrendben.

Felbontás: Nincs.

A DSC-erőforrásokat nem lehet egyszerűen hibakeresésre használni Invoke-DscResource

Ha az LCM hibakeresési módban fut, Invoke-DscResource a parancsmag nem ad információt a runspace-ről a hibakereséshez való csatlakozáshoz. További információ: DSC-erőforrások hibakeresése.

Felbontás: Felderítheti és csatlakoztathatja a runspace-t a parancsmagokGet-PSHostProcessInfo, Debug-RunspaceEnter-PSHostProcessGet-Runspace és a DSC-erőforrás hibakereséséhez.

# 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

Ugyanazon csomópont különböző részleges konfigurációs dokumentumai nem rendelkezhet azonos erőforrásnevekkel

Az egyetlen csomóponton üzembe helyezett több részleges konfiguráció esetén az erőforrások azonos nevei futásidejű hibát okoznak.

Felbontás: Használjon különböző neveket a különböző részleges konfigurációkban lévő erőforrásokhoz is.

Start-DscConfiguration – A UseExisting nem működik a -Credential használatával

Ha a UseExisting paraméterrel használjaStart-DscConfiguration, a rendszer figyelmen kívül hagyja a hitelesítőadat-paramétert. A DSC az alapértelmezett folyamatidentitást használja a művelet folytatásához. Ez hibát okoz, ha más hitelesítő adatokra van szükség a távoli csomóponton való folytatáshoz.

Felbontás: CIM-munkamenet használata távoli DSC-műveletekhez:

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

IPv6-címek csomópontnevekként a DSC-konfigurációkban

Ebben a kiadásban a DSC-konfigurációs szkriptekben csomópontnévként használt IPv6-címek nem támogatottak.

Felbontás: Nincs.

DSC-erőforrások hibakeresése Class-Based

Ebben a kiadásban az osztályalapú DSC-erőforrások hibakeresése nem támogatott.

Felbontás: Nincs.

A DSC-Class-Based-erőforrás $script hatókörében definiált változók és függvények nem maradnak meg a DSC-erőforrás több hívása során

Több egymást követő hívás Start-DSCConfiguration meghiúsul, ha a konfiguráció olyan osztályalapú erőforrást használ, amely a hatókörben $script definiált változókkal vagy függvényekkel rendelkezik.

Felbontás: Definiálja magát a DSC-erőforrásosztály összes változóját és függvényét. Nincsenek $script hatókörváltozók/függvények.

DSC-erőforrás hibakeresése PSDscRunAsCredential erőforrás használatakor

Ebben a kiadásban nem támogatott a DSC-erőforrás hibakeresése, ha egy erőforrás a PSDscRunAsCredential tulajdonságot használja a konfigurációban.

Felbontás: Nincs.

A PsDscRunAsCredential nem támogatott a DSC összetett erőforrásaihoz

Felbontás: Ha elérhető, használja a Credential tulajdonságot. Példa: ServiceSet és WindowsFeatureSet

Get-DscResource -Szintaxis nem megfelelően tükrözi a PsDscRunAsCredential függvényt

A Szintaxis paraméter nem tükrözi megfelelően a PsDscRunAsCredential paramétert, ha az erőforrás kötelezőként jelöli meg, vagy nem támogatja azt.

Felbontás: Nincs. Az ISE szerzői konfigurációja azonban a PsDscRunAsCredential tulajdonság megfelelő metaadatait tükrözi az IntelliSense használatakor.

A WindowsOptionalFeature nem érhető el a Windows 7-ben

A WindowsOptionalFeature DSC-erőforrás nem érhető el a Windows 7-ben. Ehhez az erőforráshoz szükség van a DISM modulra, valamint a Windows operációs rendszer Windows 8 és újabb kiadásaiban elérhető DISM-parancsmagokra.

Osztályalapú DSC-erőforrások esetén előfordulhat, hogy Import-DscResource -ModuleVersion nem a várt módon működik

Ha a fordítási csomópont egy osztályalapú DSC-erőforrásmodul több verziójával rendelkezik, nem választja ki a megadott verziót, Import-DscResource -ModuleVersion és fordítási hibát eredményez.

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

Felbontás: Importálja a szükséges verziót úgy, hogy a ModuleSpecification objektumot a ModuleName paraméterbe definiálja a RequiredVersion kulccsal, az alábbiak szerint:

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

Előfordulhat, hogy egyes DSC-erőforrások, például a beállításjegyzékbeli erőforrás feldolgozása hosszú időt vesz igénybe.

1. megoldás: Létrehozás egy ütemezési feladatot, amely rendszeres időközönként törli a következő mappát.

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

2. megoldás: Módosítsa a DSC-konfigurációt a CommandAnalysis mappa törléséhez a konfiguráció végén.

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