Dell PowerShell Provider 2.0 Requires Visual C++ 2015

Dell released Dell Command | PowerShell Provider 2.0 earlier this week. The move from 1.3 to 2.0 brings with it updated prerequisites. Those changes caught me unawares when I added it to my Microsoft Deployment Toolkit (MDT) environment yesterday.

The provider is a PowerShell module that adds the ability to configure BIOS settings for Dell Enterprise clients systems such as OptiPlex, Latitude, Precision, and XPS Notebooks directly within PowerShell.  I use it during my MDT deployments to check and modify BIOS settings. For example, during the Windows PE phase I check to make sure UEFI and Secure Boot are enabled, an admin password is set, and other settings match our standards.

After I updated the PowerShell provider files in MDT and started a test deployment, the deployment errored out with the message:

import-module : Could not load file or assembly 'DSMBLibWrapper.dll' or one of its dependencies. The specified module could not be found.

The problem was I failed to update the Visual C++ redistributable files the module requires. The previous versions of the provider required Visual C++ 2010 and 2012. You can’t install the redistributables in Windows PE, so the workaround was to copy the following files to the provider folder.

  • msvcp100.dll
  • msvcr100.dll
  • msvcp110.dll
  • msvcr110.dll
  • vccorlib110.dll

A quick check of the provider release notes reveals that Version 2.0 of the provider requires Visual C++ 2015 instead of 2012. Replacing the 2012 versions with 2015 gives us the following list.

  • msvcp100.dll
  • msvcr100.dll
  • msvcp140.dll
  • vcruntime140.dll

After I replaced the 2012 files with the 2015 files, the module was able to load successfully in Windows PE.

You can find the v2.0 provider and its associated documentation on the Dell Command | PowerShell Provider page. Just make sure to pay closer attention to those requirements than I did.