Sys Ctr Config Mgr 1610 | ADK 1703 | Windows 7 OSD with NVME SSD HDD - failing to apply drivers randomly
ISSUE
When deploying Windows 7 OSD - drivers are randomly not applying . Some workstations fails at application of different drivers (USB/video/NIC)
smsts.log
Current OS version is 10.0.15063.0
..
OS version is 6.1 ( OS system file version found to be 6.1.7601.23572 )
..
Executing command line: "X:\windows\system32\dism.exe" /image:"C:" /windir:"Windows" /apply-unattend:"C:\_SMSTaskSequence\PkgMgrTemp\drivers.xml" /logpath:"C:\_SMSTaskSequence\PkgMgrTemp\dism.log"
Process completed with exit code 2147500037
uExitCode == 0, HRESULT=80004005 (e:\nts_sccm_release\sms\client\osdeployment\osddriverclient\sysprepdriverinstaller.cpp,548)
Dism failed with return code -2147467259
AddPnPDriverToStore( pszSource, sTargetSystemDrive, sTargetSystemRoot, wProcessorArchitecture), HRESULT=80004005 (e:\nts_sccm_release\sms\client\osdeployment\osddriverclient\sysprepdriverinstaller.cpp,658)
Failed to add driver to driver store. Code 0x80004005
InstallDriver( pDriver->getContent()->getContentId(), sSource, 0 ), HRESULT=80004005 (e:\nts_sccm_release\sms\client\osdeployment\osddriverclient\driverinstaller.cpp,622)
dism.log
Failed to load offline schema.dat hive from '\\?\C:\Windows\system32\smi\store\Machine\schema.dat' into registry key '{abc123-ab12-1234-ab12-abc12345678}C:/Windows/system32/smi/store/Machine/schema.dat'. [HRESULT = 0x80070020 - ERROR_SHARING_VIOLATION]
Failed to load SMI schema hive [HRESULT = 0x80070020 - ERROR_SHARING_VIOLATION]
Unloading offline registry hive: {abc123-ab12-1234-ab12-abc12345678}C:/Windows/System32/config/SOFTWARE
Failed to unload offline registry: {abc123-ab12-1234-ab12-abc12345678}C:/Windows/System32/config/SOFTWARE, the client may still need it open. [HRESULT = 0x80070005 - E_ACCESSDENIED]
...
DISM Package Manager: PID=1812 Failed initializing the session - CDISMPackageManager::RefreshInstanceAndLock(hr:0x80070020)
DISM Package Manager: PID=1812 Failed doing internal initialization - CDISMPackageManager::Initialize(hr:0x80070020)
DISM Provider Store: PID=1812 Failed to call Initialize method on IDismServicingProvider Interface - CDISMProviderStore::Internal_LoadProvider(hr:0x80070020)
DISM Provider Store: PID=1812 Failed to Load the provider: C:\_SMSTaskSequence\PkgMgrTemp\abc123-ab12-1234-ab12-abc12345678\CbsProvider.dll. - CDISMProviderStore::Internal_GetProvider(hr:0x80070020)
RESOLUTION
3 Workarounds can be found on the System Center blog by Frank Rojas
In my customer's case, he used workaround 2 and was pleased with the result.
Workaround 2 does not use the Apply Driver Package at all. Instead it uses the Download Package Content task to first download the Driver Package to a specified directory and then using more or less the same command line from Workaround 1, it installs the drivers. This workaround also resolves the problem by only having to initiate one registry load/unload during the DISM driver injection process. Since the Download Package Content task is only available with ConfigMgr Current Branch, this workaround cannot be used with older versions of ConfigMgr (ConfigMgr 2012 SP2/R2 SP1 or ConfigMgr 2007).
~Kevin Lee
Support Escalation Engineer | Microsoft System Center Configuration Manager
Disclaimer: This posting is provided “AS IS” with no warranties and confers no rights.