How to Inventory Dell BIOS and UEFI Settings with ConfigMgr Part 1

Dell monitor logo

WARNING 9/30/2016: Installation of Dell Command | Configure version 9.1 will break Hyper-V on workstations that are running it. Basically, the Dell Command | Monitor overwrites some Hyper-V WMI entries and renders it inoperable. The simple fix is to run the following command after installing Command | Monitor on a system running Hyper-V: ‘mofcomp %systemroot%\system32\WindowsVirtualization.V2.mof’. Step numbers 6 &  9 have been updated below.

Similar to the Dell Command | Configure utility, Dell recently released the Dell Command | Monitor utility (previously known as OMCI or OpenManage Client Instrumentation). Where as the Dell Command | Configure utility enables IT administrators to configure Dell Enterprise client systems, the Dell Command | Monitor allows IT administrators to monitor and inventory system configurations and system health with enterprise management consoles, like System Center Configuration Manager. Now that Windows 10 is here, organizations are going to want to be able to report on UEFI capable systems as part of their planning so that they can be reconfigured for UEFI (instead of legacy BIOS). Running UEFI is a requirement in order to take advantage of the new security features in Windows 10 like Secure Boot, Device Guard and Credential Guard.

In a previous post, Inventory Secure Boot State and UEFI with ConfigMgr, I provided a method that will inventory systems that are running Secure Boot. This method results in the return of three possible values On (1), Off (0) or not detected (Null). Since UEFI is a requirement for Secure Boot, we can determine that UEFI is not enabled for a device if the Secure Boot state is not detected. This is great for high level reporting on how much of the environment is running UEFI, but it does not tell us how many systems (that are not running UEFI) can run UEFI.  Using Dell Command | Monitor and System Center Configuration Manager, we can determine not only which systems are running UEFI, but also which systems are UEFI capable. Dell Command | Monitor creates the necessary classes and properties in WMI that enables the monitoring and reporting of this information programmatically.

Part 1 of this post will show you what you need to do in order to distribute Dell Command | Monitor out to your existing systems using System Center Configuration Manager.

Part 2 of this post will show you how to extend System Center Configuration Manager to be able to collect this information and show the exact class that needs to be enabled.

The first thing you need to do is download the x86 and x64 versions (from here: Download 32-bit Dell Command | Monitor v9.1/Download 64-bit Dell Command Monitor v9.1) and install/extract it on a Dell system that is already running Windows 7/8/8.1/10 (there is an option to just extract the contents of the package as well). As of this post, version 9.1 is the latest release.

  1. After downloading (starting with the 64-bit version) and running the exe, click on extract.
    01 Extract package
  2. Create a temporary folder to extract the contents.
    02 Extract temp folder
  3. After the extraction completes, click View Folder.
    03 Extract complete
  4. Create a new folder structure on your Application repository (for this example I use Applications>Dell>Command-Monitor>9.1>x64) and copy the extracted contents to this location.
    04 App repository
  5. Download, extract the contents and copy to your Application repository (place the contents in Applications>Dell>Command-Monitor>9.1>x86).
    05 App repository x86
  6. [Updated for Hyper-V Fix] In the same directory, create the following file and call it Install-x64.ps1
    #Install Dell Command | Monitor
    Start-Process -FilePath "msiexec.exe" -ArgumentList "/i Command_Monitor_x64.msi REBOOT=ReallySuppress /qn" -Wait -Passthru
    
    #Check to see if Hyper-V is installed
    $HypverV = Get-WindowsOptionalFeature -online -featurename Microsoft-Hyper-V-Hypervisor
    $HypverV.State
    
    #Fix Hyper-V Install
    If ($HypverV.State -eq "Enabled") {
    $Path = '$env:SystemRoot\System32\WindowsVirtualization.V2.mof'
    $MofComp = Get-Item 'C:\Windows\System32\wbem\mofcomp.exe'
    Invoke-expression "& $MofComp $Path" }
    

     

  7. In the ConfigMgr Console, create a new Application by browsing to the MSI in the x64 subdirectory on the Application repository and click Next.
    06 New App
  8. View the imported information from the MSI and click Next.
    07 New App
  9. [Updated for Hyper-V Fix] On the General Information screen verify the following information and change the Installation program to: powershell.exe -ExecutionPolicy Bypass -file “.\Install-x64.ps1”. NOTE: We only need to do this for x64 since Hyper-V is not available on x86.
    08 New App
  10. Confirm the settings on the Summary screen and click Next.
    09 New App
  11. Verify that The Create Application Wizard completed successfully and click Close.
    10 New App
  12. Next, open up the Properties of the newly created Application.
    11 New App
  13. Select the Deployments Types tab and edit the listed Deployment Type.
    12 DT x64
  14. On the Deployment Type Properties, select the Requirements tab. Note: I like to add x64 to the name of the Deployment Type.
    13 DT x64
  15. On the Requirements tab, click the Add button.
    14 DT x64
  16. Select all of the 64-bit workstation versions of Windows that are supported in your environment and click Ok.
    15 DT x64
  17. Back on the Deployment Type Properties screen verify the following and click Ok.
    16 DT x64
  18. Now we need to add in the 32-bit Deployment Type. Back on the Deployment Types tab, click the Add button.
    17 DT
  19. On the General screen of the Create Deployment Type Wizard, browse to the Application repository for the 32-bit MSI and click Next.
    18 DT x86
  20.  Verify the that import succeeded and click Next.
    19 DT x86
  21. On the General Information screen, verify the following information and click Next. Note: I like to x86 to the Name and add REBOOT=ReallySuppress and /qn to the command line.
    20 DT x86
  22. On the Requirements screen, click the Add button.
    21 DT x86
  23. Select all of the 32-bit workstation versions of Windows that are supported in your environment and click Ok.
    22 DT x86
  24. Back on the Requirements screen, verify the following information and click Next.
    23 DT x86
  25. On the Dependencies screen, click Next.
    24 DT x86
  26. On the Summary screen, verify the settings and click Next.
    25 DT x86
  27. On the Completion screen, verify success and click Close.
    26 DT x86
  28. Back on the Deployment Types tab click Ok.
    27 App DT tab
  29. You will now see the Application with two Deployment Types listed in the console. Now we need to distribute the content to our Distribution Point(s). Right-click and select Distribute Content.
    28 Distribute Content
  30. On the General screen of the Distribute Content Wizard, click Next.
    29 Distribute Content
  31. On the Content screen, click Next.
    30 Distribute Content
  32. On the Content Destination screen, select the desired Distribution Point Group (or Distribution Point) and click Next.
    31 Distribute Content
  33. On the Summary screen, confirm the settings and click Next.
    32 Distribute Content
  34. On the Completion screen, verify the wizard completed successfully and click Close.
    33 Distribute Content
  35. Now we need to create a collection that contains only Dell workstation clients that we can use to deploy the newly created Dell Command | Monitor Applications. Create a new collection called All Dell Workstation Clients. On the General screen of the Create Device Collection Wizard, enter the following information and click Next. Note: I like to limit workstation collections to my All Workstation Clients collection.
    34 Dell Collection
  36. On the Membership Rules screen, click Add Rule and select Query Rule.
    35 Dell Collection
  37. On the Query Rule Properties screen, type All Dell Systems for the Name and then click Edit Query Statement.
    36 Dell Collection
  38. On the Query Statement Properties screen, select the Criteria tab and use Computer System.Manufacturer is like “%Dell%” and click Ok.
    37 Dell Collection
  39. Back on the Query Rule Properties screen, verify the following information and click Ok.
    38 Dell Collection
  40. Back on the Membership Rules screen, verify the following information and click Next.
    39 Dell Collection
  41. On the Summary screen, confirm the settings and click Next.
    40 Dell Collection
  42. On the Completion screen, verify the wizard completed successfully and click Close.
    41 Dell Collection
  43. Once the collection evaluation has completed, verify that the collection membership is working as expected and only contains Dell Workstation Clients.
    42 Collection
  44. Create a test deployment of the Dell Command | Monitor Application and verify that it is installing correctly. Back in the Software Library in the ConfigMgr Console, right click on Dell Command | Monitor Application and select Deploy.
    43 Deploy
  45. On the General screen of the Deploy Software Wizard, select the All Dell Workstation Clients collection and click Next. Note: Be sure to thoroughly test this in a lab first!
    44 Deploy
  46. On the Content screen, verify that the content has already been distributed to the Distribution Point Group(s)/Distribution Point(s) and click Next.
    45 Deploy
  47. On the Deployment Settings screen, choose Required for the Purpose and click Next.
    46 Deploy
  48. On the Scheduling screen, select the desired schedule and click Next.
    47 Deploy
  49. On the User Experience screen, select the desired settings and click Next.
    48 Deploy
  50. On the Alerts screen, click Next.
    49 Deploy
  51. On the Summary screen, verify the settings and click Next.
    50 Deploy
  52. On the Completion screen, verify the wizard completed successfully and click Close.
    51 Deploy
  53. Next, verify that it installed successfully by looking in Software Center and Programs and Features.
    52 Software Center52 Programs and Features
  54. Using Wbemtest, you will now see all of the Dell specific classes in root\dcim\sysman.
    53 Wbemtest

Now that Dell Command | Monitor is deployed, we can now use this information in a whole new way with System Center Configuration Manager. We can use it in Reports, Settings Management, and query criteria (just to name a few). Part 2 of this blog will show you how to extend System Center Configuration Manager to be able to collect this information and show the exact class that needs to be enabled to report on BIOS-UEFI settings.

Originally posted on https://miketerrill.net/

14 thoughts on “How to Inventory Dell BIOS and UEFI Settings with ConfigMgr Part 1

  1. Pingback: How to Inventory Dell BIOS and UEFI Settings with ConfigMgr Part 2 | Mike's Tech Blog

  2. Pingback: Charlie's Tech Ramblings » Blog Archive » Querying Dell Monitor Information in SCCM

  3. Pingback: How to Deploy Dell Command | PowerShell Provider with ConfigMgr | Mike's Tech Blog

  4. Hi Mike! Thanks for the great post! One question Dell have released 9.2 of the Dell Command | Monitor, do you know if the “Hyper-V” fix is still needed?

    regards Bo

  5. Need to split out the x64 Windows 7 deployment into its own, or add logic to your script. “Get-WindowsOptionalFeature” does not exist for Win7

  6. Pingback: A Few WMI Scripts for Getting Temperature or Tag information from your Dell Server – louisOpedia

  7. Pingback: Configuring WoL with CM for Dell Desktops – Part 3 | Mike's Tech Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.