First look – Dell 64-bit Flash BIOS Utility

Dell Laptop

Update 2/14/2017: Dell has publicly posted a download link to the 64-bit BIOS Installation Utility (now called Flash64W.exe) and you can find it here: http://en.community.dell.com/techcenter/enterprise-client/w/wiki/12237.64-bit-bios-installation-utility

Now that the cat is out of the bag that Dell has a 64-bit Flash BIOS Utility, I can finally blog about it. Earlier this week, Warren Byle of Dell announced the following on Twitter:

So there you have it, the wait is over (of course, after you get off the phone with Dell support) and you can now flash the Dell BIOS in 64-bit. You are probably thinking ‘big deal, I could do that already – flash the BIOS on 64-bit Windows 10’. Yea, you are right since full 64-bit Windows has a 32-bit subsystem, but the real magic is being able to flash the BIOS under WinPE. If your system is running UEFI (or you have a UEFI conversion Task Sequence), then it needs to boot the native architecture (in this case 64-bit). By only having a 32-bit flash BIOS utility before meant that we were unable to flash under WinPE x64. The Dell 64-bit Flash BIOS Utility is a much welcome (and needed) addition to the IT toolbox (thanks Warren)!

Using the tool is pretty simple, you use it in addition to the BIOS exe that you have already downloaded. I’ll cover off how I use it in a Configuration Manager Package in another post, but for now, here is how you use it:

001-flashupdatewin64

I used the following command line under WinPE x64 to silently flash a Dell OptiPlex 7040 from version 1.4.5 to 1.5.4:

FlashUpDateWin64.exe /b=OptiPlex_7040_1.5.4.exe /s /f /l=1.5.4.txt

Which wrote the following output:

***BIOS flash started on 1/31/2017 at 18:38:32***
Command: F:\FlashUpDateWin64.exe /b=OptiPlex_7040_1.5.4.exe /s /f /l=1.5.4.txt

1.4.5 INSTALLED (Dell System OptiPlex 7040)
– Gigabit Ethernet : 0.8
– Intel Management Engine (VPro) Update : 11.0.18.1002
– System BIOS with BIOS Guard  : 1.4.5
1.5.4 UPDATE ( OptiPlex 7040)
– System BIOS with BIOS Guard  : 1.5.4
– Gigabit Ethernet : 0.8
– Intel Management Engine (VPro) Update : 11.0.18.1002
– System Map : 1.0.1
– PCR0 XML : 0.0.0.1

Exit Code = 2 (Reboot Required)
***BIOS flash finished at 1/31/2017 at 18:38:41***

I hope you are as excited as me about this new *SHINY* utility from Dell. Happy 64-bit BIOS flashing!

Originally posted on https://miketerrill.net/

Using MBR2GPT with Configuration Manager OSD

devices-windows-10-creators-update-banner

In my previous post, Getting Started with MBR2GPT, I showed a first look at the MBR to GPT conversion utility that is going to be released with the upcoming Windows 10 Creators Update. In this post, I am going to show how it can be integrated with a Configuration Manager OSD Task Sequence. In this test, I reset my test machine back to Legacy BIOS and disabled Secure Boot. Next, I installed build 15002 of the Windows 10 Enterprise Insider Preview, joined it to my test domain and installed the Configuration Manager 1610 client.

Starting off simple, the goal was to see if I could run MBR2GPT in a simple Task Sequence and automate what I did manually in the previous post. The first thing I did was add MBR2GPT.EXE to my 1E BIOS to UEFI OEM Toolkit Package – since I need to change the BIOS settings, it made sense to just add it to this package. The next step was to create a custom, simple Task Sequence – one that I can later just copy into a Windows 10 In-place Upgrade Task Sequence. The end result looks like this:

001-using-mbr2gpt

For the Options on this Group, I put the following Conditions:

002-using-mbr2gpt

I only want to run this on a Dell, HP or Lenovo that is currently running Legacy BIOS (no need to run it if the system is already UEFI).

The next step is to run MBR2GPT. This is the same command that I ran manually, but I added the /silent switch so that it would run without prompting for input:

003-using-mbr2gpt

Next, I run my 1E BIOS to UEFI OEM step (available to 1E Nomad customers) to configure the necessary BIOS settings. In this case I want to enable Secure Boot as well. The nice thing about this step is that conditions can be added so there can be multiple configuration – for example, one with Secure Boot and maybe one without Secure Boot (for systems that might have conflicts with Secure Boot because of bad video card drivers).

004-using-mbr2gpt

The last thing to do is reboot after running both of these steps in order for the configurations to take effect.

005-using-mbr2gpt

Running this Task Sequence on my test system yielded the following in the smsts.log where we can see that MBR2GPT ran successfully:

006-using-mbr2gpt

Adding this into an in-place upgrade Task Sequence might look something like this:

007-using-mbr2gpt

Keep in mind that this is only part of the Windows Insider release right now and should not be used in production, but initial tests seem to show promising results. Also, there are still some blockers for being able to use in-place upgrade like I mentioned in the previous post. Have a plan on how you plan on handling applications that need to be uninstalled, upgraded and replaced. In other words, just because you can do in-place upgrade, do you still want that old version of Office on your shiny new Windows 10 OS? In addition, Windows 10 content is going to have a massive impact to your network. Not just the Feature Updates, but the Quality Updates (i.e. security patches) are likely to have the biggest impact (especially if you have to patch multiple versions of Windows 10). Look into using a peer to peer solution (like 1E Nomad) sooner rather than later. Lastly, chances are, you are going to have to support multiple deployment methods in your environment – make sure the tools (and vendor) you choose is capable of handling all of them seamlessly (don’t settle for cheap knock offs – you get what you pay for and can open up your network to unwanted security vulnerabilities). Baremetal for new computers and break/fix, hardware refresh/replacement, wipe-and-load, and in-place upgrade.

Originally posted on https://miketerrill.net/

Getting Started with MBR2GPT

devices-windows-10-creators-update-banner

In my previous post, BIOS to UEFI made easier with Windows 10 Creators Update, I uncovered a hidden gem in the 15007 build of the Windows 10 Enterprise Insider Preview called MBR2GPT. The benefits of this MBR to GPT conversion utility is that it makes it easier to convert systems from BIOS to UEFI and be able to take advantage of all the security features that comes in Windows 10 like Secure Boot, Device Guard and Credential Guard (to name a few). Currently, in order to stay supported by Microsoft, the hard disk needs to be completely repartitioned and formatted when switching from MBR to GPT. This is a destructive process and requires the user data to be backed up off of the hard drive, applications to be re-installed and then the user data restored once the new OS is up and running. Without the proper tools (shameless plug – see the 1e Windows 10 Now Solution), this can be a cumbersome task.

You still want to put some thought into applications as it relates to an in-place upgrade. There will be some applications that will be upgrade blockers (mainly 3rd party antivirus that is not compatible with the Windows 10 in-place upgrade process or 3rd party disk encryption) and need to be uninstalled prior to the in-place upgrade. There will also be applications that you will want upgraded – do you really want to run Office 2003 which may have been your standard on Windows 7 on Windows 10 or would you like to uplift it to Office 365 as part of the process? You might also want to replace an application with a less costly application (like swapping an expensive FTP client with a less expensive one). And lastly, you might want to uninstall applications that are not used in order to reduce your security foot print and eliminate unnecessary patching. These are things to consider when venturing down the in-place upgrade deployment method.

Applications aside for now, let’s get back to MBR2GPT…

You are probably wondering what are the options for using this utility – well, I can tell you if you have already deployed Windows 10 to BIOS systems you are fortunately in luck. Also, if you have not even started your Windows 10 upgrade, you are also in luck. The basic upgrade process will look like the following:

Windows* running on BIOS > In-place upgrade to Windows 10 (probably Creators Update) – still running BIOS at this point > MBR2GPT > Vendor BIOS Settings > Reboot > Windows 10 running UEFI.

Where Windows* is any version that supports upgrading to a Windows 10 version that supports MBR2GPT (like Windows 7 SP1 x64, Windows 8/8.1 x64 and previous versions of Windows 10-1507/1511/1607).

Now that we have that covered, let’s see how this tool actually runs. Below, I have an Insiders build of Windows 10 Creators Update (note that this is build 15002 and that MBR2GPT is in 15007). As you can see, BIOS Mode is Legacy and there is a single hard disk with Master Boot Record(MBR) volume:

001-getting-started-mbr2gpt

I have copied the MBR2GPT utility from a 15007 build on to the C: drive of this system. Running MBR2GPT.exe /? displays the following help output:

001-mbr2gpt

First thing I want to do here is test it using the /validate switch to see if it is actually going to work and what kind of output is going to be displayed by running:

MBR2GPT.EXE /disk:0 /validate /allowFullOS

This results in the following on-screen output:

002-getting-started-mbr2gpt

And the following output is logged in %windir% in the setupact.log:

003-getting-started-mbr2gpt

Now, I am going to run the command without the /validate switch. Notice the additional output on the command line and refreshing the disk volume properties shows it to be GUID Partition Table (GPT):

004-getting-started-mbr2gpt

Next, this is where we would run the vendor tool to change the correct BIOS settings (we will do that later in a Task Sequence when we automate the process), but for now I am going to reboot and hit the proper key to get into the BIOS settings.

After making the necessary changes (and I even enabled Secure Boot), notice that System Information displays the BIOS Mode as UEFI with Secure Boot State set to On:

005-getting-started-mbr2gpt

This first look at the MBR2GPT conversion utility looks very promising. Hopefully in the coming months as we get closer to the release of Windows 10 Creators Update we will start to get more information on it as well as what versions of Windows 10 will support it.

In my next blog, Using MBR2GPT with Configuration Manager OSD, I am going to show how we can integrate MBR2GPT into an OSD Task Sequence.

Originally posted on https://miketerrill.net/

BIOS to UEFI made easier with Windows 10 Creators Update

devices-windows-10-creators-update-banner

Back in December, Microsoft published a blog (Windows 10 Creators Update advances security and best-in-class modern IT tools) where they mentioned a conversion tool for making the conversion to UEFI:

“In-place UEFI conversion

We’ve heard from our customers that they want to take advantage of new Windows 10 security investments like Device Guard on their existing modern hardware, but many of these new features require UEFI-enabled devices. For those customers who have already provisioned modern Windows PCs that support UEFI but installed Windows 7 using legacy BIOS, converting a device to UEFI required an IT manager to repartition the disc and reconfigure the firmware. This meant they would need to physically touch each device in their enterprise. With the Creators Update, we will introduce a simple conversion tool that automates this previously manual work. This conversion tool can be integrated with management tools such as System Center Configuration Manager (ConfigMgr)* as part of the Windows 7 to Windows 10 in-place upgrade process.”

I disagree with their statement that you need to physically touch each device in the enterprise in order to make the conversion to UEFI, as I have engineered the process that we have been using at 1E in our Windows 10 Now solution since last year. However, in order to do the conversion and to be supported (which the 1E Windows 10 Now Solution is 100% supported) you need to completely format and partition the in order to change it from MBR to GPT. This presents other challenges, such as backing up and restoring user data and re-installing applications. There are other unsupported solutions out there (like GPTGen) that I know other vendors use that enable you to switch the disk layout from MBR to GPT without formatting and partitioning the disk, but I would steer clear of these solutions (and vendors) in order to continue to be supported by Microsoft.

In the Microsoft blog, they only made a mention of the ‘simple conversion tool’ and did not provide any details about it (like when to expect it, how to use it, etc.). Well, there was a nice little surprise that showed up in build 15007 of the Windows 10 Enterprise Insider Preview called MBR2GPT.EXE

001-mbr2gpt

This looks like the conversion utility that the blog post mentioned. Other than the MBR2GPT help, there is not much information about the utility and what versions of Windows 10 that will be supported. With this tool, more machines will qualify for an in-place upgrade (like machines that are currently running BIOS). There are still some in-place upgrade limitations out there, like 3rd party disk encryption (unless the vendor now supports in-place upgrade) or changing between architectures or base OS languages, that will still require a wipe-and-load approach (see Johan’s post Windows 10 Upgrade Limitations for a few others).

The other thing that needs to be done when using MBR2GPT is to set the correct vendor specific BIOS settings changes so that the system will boot UEFI after converting the disk layout. The order of the settings does matter and settings can vary among models from the same vendor. I have previously blogged about (Automating Dell BIOS-UEFI Standards for Windows 10) how to do this for Dell (they have the most consistent BIOS settings out of everyone). We also have a BIOS to UEFI tool that only comes with Nomad that abstracts all of the vendor settings that I have blogged about (Getting Started with 1E BIOS to UEFI) that has a slick UI in the form of a Task Sequence step.

003-1e-bios-to-uefi

(Yea, I know, I have heard from many of you that 1E should offer this as a stand alone tool – feel free to let them know at info@1e.com.)

In my next post, Getting Started with MBR2GPT, we will talk a look at this tool in action and keep in mind that this is pre-release software for now so do not use it in production yet!

Originally posted on https://miketerrill.net/

Recording OSD Videos and BIOS Screens

I have recorded some end-to-end OSD videos that show a zero touch BIOS to UEFI OS deployment (from a single task sequence without PXE) in order to show that this could be done. I have also captured screen shots from Dell, Lenovo and HP BIOS screens to have when presenting on the BIOS/UEFI topic – it is an easy way to show the settings in the UI. Many of you are probably wondering how I am able to capture these videos and screen shots as it can be tricky to do even with the right equipment.

For the capture device, my good friend Johan Arwidmark (who has expensive tastes in gadgets) talked me in to getting the Epiphan DVI2USB 3.0 USB video frame grabber. It is not cheap, but will get the job done and works much better than the other, cheaper solutions. It captures DVI, HDMI and VGA. It also comes with software that allows you to do video recording or screen shot captures. I do use this from time to time, but you really need to get a different codec otherwise your video file sizes will be huge. There is one called FFdshow that you can down load from Epiphan here. The other thing that I don’t like is that the software will stop recording when the device loses a signal (like a reboot on the device you are capturing). You can configure it to continue recording and it will start recording to another file. Not a show stopper, but a little annoying to me.

I ended up using Camtasia 8 for recording videos. It treats the device as a webcam and it continues to record even if the device loses a signal during a reboot. I recently upgraded to Camtasia 9 (which looks much better on high-res displays like my Surface Book), but they dropped the ability to record only from a webcam. In other words, you need to record part of the screen and the webcam and then delete the screen recording after the fact – almost annoying as the split files. Not happy with this, I started looking for another option.

I use Snagit almost daily for taking screen shots and I remembered that they added the ability to also do screen recordings a few versions back. I figured I would see if it could record the webcam and sure enough it did! Now for the real test, could it do what I wanted it to do – record uninterrupted in a single (reasonable size) file even across reboots?

With the Snagit Capture utility open, click on the Video tab:

snagit-001

Then simply turn the Webcam on and select the capture device:

snagit-002

Click on the Capture button and this will bring up the following menu where you can adjust the screen resolution to the desired size. The following is running on my Surface Book at 3000 x 2000. The device I am capturing at 1920 x 1080 is a Dell Latitude E6430 (getting ready to do a Zero Touch Windows 7 BIOS with 3rd party disk encryption to Windows 10 UEFI with BitLocker recording):

surface-book-screen-shot

Click record when ready and edit the result in Snagit or Camtasia.

P.S. Snagit also makes animated GIFs. And yes, when going into the BIOS UI it sometimes shows a split screen, but it corrects the image shortly after as you can see below.

reboot

Originally posted on https://miketerrill.net/

Create multiple partitions on ANY USB Flash Drive

I have seen a few blog posts lately that talk about splitting large WIM files in order to get them to fit on a USB flash drive that is formatted as Fat32. I am not exactly sure why you would want to do that when you don’t have to, as it sounds like extra work to me (but hey, if you like extra work then be my guest).

In my previous post, USB Flash Drives, UEFI and large WIMs, I showed how you can create multiple partitions on certain USB Flash Drives that were either already set as a fixed disk or could have the removable bit flipped using a special utility. Having multiple partitions is useful when you need to boot a UEFI system off the USB Flash Drive and install an operating system. UEFI needs a Fat32 formatted partition in order to boot. The problem with Fat32 is that it has a maximum file size limit of 4GB. Custom images (WIMs) can easily exceed 4GB in size (even the install.wim for Windows Server 2016 is larger than 4GB), which prevents them from being copied to a Fat32 formatted partition. In order to over come this, you would need either need to split the WIM or install it from a file share (provided you have network connectivity) or from another NTFS formatted partition/drive.

Starting in the Windows 10 Insider Preview build 14965, Diskpart now allows you to create multiple partitions on ANY USB Flash Drive – even ones that have the removable bit set.

001-disk-management

The following two USB Flash Drives were ones that I could not flip the removable bit nor get multiple partitions on them previously (note that they both still show as Removable):

SanDisk Ultra:

002-sandisk-ultra-general003-sandisk-ultra-volumes

Lexar:

004-lexar-general005-lexar-volumes

In order to copy files to the second partition, you will need to use the Windows 10 Insider Preview build 14965 (or later). Windows 10 1607 cannot read the second partition (yet), which means that current Windows setup (Server 2016 or Windows 10) might have an issue reading it (in other words I haven’t fully tested that part yet).  Now time to experiment more with this and the new WinPE found in the Windows ADK Insider Preview

Originally posted on https://miketerrill.net/

How to Deploy Dell Command | PowerShell Provider with ConfigMgr

dell-command-powershell-provider

Dell provides multiple tools for getting and setting their BIOS/UEFI settings. In previous posts, I have talked about Dell Command | Monitor, which can be used to inventory Dell specific hardware settings using Configuration Manager (see How to Inventory Dell BIOS and UEFI Settings with ConfigMgr Part 1 and How to Inventory Dell BIOS and UEFI Settings with ConfigMgr Part 2). I have also showed How to create a Dell Command | Configure Package in ConfigMgr  that can be used in a task sequence to make BIOS/UEFI changes. The Dell Command | Configure utility, also know as CCTK, can be used to get values as well as set values. Dell also has the Dell Command | PowerShell Provider that allows you to get and set BIOS/UEFI settings with (you guessed it) PowerShell. Now you are probably wondering why do I need this PowerShell Provider when I have the CCTK? Good question!

It really comes down to the task at hand and how you plan to create a solution for it. If you simply just need to set a setting or two, then the CCTK might be the best bet. But if you are looking to get information and then execute an action, well then PowerShell is going to be a better tool for the job (think about Configuration Manager Settings Management). The downside is that you need PowerShell version 3.0 or later (for DellBIOSProvider 1.1), which mean that you will need to add PowerShell to your Boot Images if you plan on using it in WinPE (which adds around 100MB to the size).

So lets jump in and see what it takes to get the Dell Command | PowerShell Provider deployed using Configuration Manager. The first thing you want to do is install the latest version (DellBIOSProvider 1.1 is the most current version at the time of this blog). On a Dell test system that has access to the Internet, download the latest version from the PowerShell Gallery (BTW – the download links to the Dell Support site on the Dell Command | PowerShell Provider TechCenter site have not been updated and still point to version 1.0).

  1. On your Dell test system, open PowerShell and run the following command to download the PowerShell Provider from the PowerShell Gallery (it may prompt you to install some additional items first):
    Save-Module -Name DellBIOSProvider -Path c:\temp
    NOTE: You could distribute the commands on the PowerShell Gallery page if you allow all of your computers to connect to the Internet and install modules from the PowerShell gallery. Otherwise, continue reading for how to deploy it with Configuration Manager.
    001-dellbiosprovider-1-1
  2. Copy the entire contents to your Application source repository. I have created the following subdirectory structure in my Application source repository: \\ContentSource\Applications\Dell\Command-PowerShell Provider\1.1\x64 and copied the DellBIOSProvider folder into this directory.
    002-dellbiosprovider-1-1
  3. Create a file called Install-x64.ps1 in this directory with the following contents:
    #Copy the DellBIOSProvider files into the Windows PowerShell Modules directory
    Copy-Item -Path "$pwd\DellBIOSProvider\" -Destination "$env:ProgramFiles\WindowsPowerShell\Modules\DellBIOSProvider\1.1" -Recurse -Force
    
    #Import the DellBIOSProvider module into current session only for success/fail testing during deployment
    #Either modify default system profiles or start scripts with the following command
    Import-Module "DellBIOSProvider"
    
    
  4. Your Application source directory should now contain the DellBIOSProvider folder and Install-x64.ps1.
    003-dellbiosprovider-1-1
  5. In the ConfigMgr Console, create a new Application, select Manually specify the application information and click Next.
  6. On the General Information tab, Fill in Dell Command | PowerShell Provider for the Name, Dell for the Publisher, 1.1 for the Software version, check Allow this application to be installed from the Install Application task sequence action without being deployed and click Next.
  7. On the Application Catalog tab, optionally enter additional information and select an icon (I like to use the icon from the CCTK GUI) and click Next.
  8. On the Deployment Types tab, click the Add button.
  9. On the General tab of the Create Deployment Type Wizard, select Script Installer from the Type drop down and click Next.
  10. On the General Information tab, enter Install-x64 and click Next.
  11. On the Content tab, browse to your Application source repository (I use \\ContentSource\Applications\Dell\Command-PowerShell Provider\1.1\x64). For the Installation program use: powershell.exe -ExecutionPolicy Bypass -file “.\Install-x64.ps1” (NOTE: you depending on how your ConfigMgr PowerShell Client setting is configured you might not need the -ExecutionPolicy Bypass in the command line).
  12. On the Detection Method tab, click Add Clause.
  13. On the Detection Rule window, leave the Setting Type to File System and the Type to File. For the Path enter: %PROGRAMFILES%\WindowsPowerShell\Modules\DellBIOSProvider\1.1 and for the File or folder name enter DellBIOSProvider.dll. Uncheck This file or folder is associated with a 32-bit application on 64-bit systems. Leave the setting This file system setting must exist on the target system to indicate presence of this application and click OK. NOTE: Dell has not increased the version of this DLL to 1.1. It is still listed as 1.0.0.0. The other alternative is to use the timestamp on the file if detecting presence is not good enough for your environment.
  14. Back on the Detection Method tab, verify that the newly created detection method rule shows up and click Next.
  15. On the User Experience tab, change the Installation behavior to Install for System, the Logon requirement to Whether or not a user is logged on, the Installation program visibility to Hidden and click Next.
  16. On the Requirements tab, click Add.
  17. On the Create Requirement, select the 64-bit operating systems that you support in your environment and click OK.
  18. Back on the Requirements tab, add any other requirements that are necessary for your environment and click Next.
  19. On the Dependencies tab, add any dependencies that are required in your environment and click Next. NOTE: the Dell PowerShell Provider does have a dependency on the Visual C++ Runtimes so if these are not deployed in your environment you may need to add them as a dependency. For the exact versions, see the Dell Command | PowerShell Provider documentation.
  20. On the Summary tab, verify the information and click Next.
  21. On the Completion tab, verify the success and click Close.
  22. Back on the Deployment Types tab, click Next. NOTE: use the same process on a 32-bit system if you support 32-bit in your environment.
  23. On the Summary tab, verify the information and click Next.
  24. On the Completion tab, verify the success and click Close.
  25. You will now see the Application with one Deployment Type listed in the console. Now we need to distribute the content to the Distribution Point(s). Right-click and select Distribute Content.
  26. On the General screen of the Distribute Content Wizard, click Next.
  27. On the Content screen, click Next.
  28. On the Content Destination screen, select the desired Distribution Point Group (or Distribution Point) and click Next.
  29. On the Summary screen, confirm the settings and click Next.
  30. On the Completion screen, verify the wizard completed successfully and click Close.
  31. Now we need to create a collection that contains only Dell workstation clients that we can use to deploy the newly created Dell Command | PowerShell Provider Application. See step number 35 on How to Inventory Dell BIOS and UEFI Settings with ConfigMgr Part 1 on how to do this.
  32. Create a test deployment of the Dell Command | PowerShell Provider Application and verify that it is installing correctly. Create a collection called Dell Command | PowerShell Provider 1.1 and limit it to the previously created Dell Workstation Clients collection. Add a few Dell test machines. Back in the Software Library in the ConfigMgr Console, right click on Dell Command | PowerShell Provider Application and select Deploy.
  33. On the General screen of the Deploy Software Wizard, select the Dell Command | PowerShell Provider 1.1 collection and click Next. Note: Be sure to thoroughly test this in a lab first!
  34. On the Content screen, verify that the content has already been distributed to the Distribution Point Group(s)/Distribution Point(s) and click Next.
  35. On the Deployment Settings screen, choose Required for the Purpose and click Next.
  36. On the Scheduling screen, select the desired schedule and click Next.
  37. On the User Experience screen, select the desired settings and click Next.
  38. On the Alerts screen, click Next.
  39. On the Summary screen, verify the settings and click Next.
  40. On the Completion screen, verify the wizard completed successfully and click Close.
  41. Next, verify that it installed successfully by looking in Software Center or browse to C:\Program Files\WindowsPowerShell\Modules on a test system and you should see the DellBIOSProvider directory with all of the files. Open up an elevated PowerShell prompt and run: Import-Module DellBIOSProvider. If this is successful you can run Get-DellBiosSettings and it should list out the BIOS settings for the current system.
    004-powershell-prompt
    005-powershell-prompt

Now that Dell Command | PowerShell Provider is deployed, we can run a number of PowerShell commands on Dell systems to both get and set Dell BIOS settings (even some settings that Dell Command | Monitor does not report). In the future I will write more posts on how you can use ConfigMgr to leverage this new PowerShell provider.

Originally posted on https://miketerrill.net/