When starting a project to deploy a new operating system into the environment, it is a good thing to look at the current state of affairs. Configuration Manager already contains a wealth of information about your current environment, but there are also other useful pieces of information that is not enabled in the default Configuration Manager inventory. One of the first things you need to determine is – what models are in the environment and which ones support Windows 10?
There are three parts to this question. The first part should be – which models are supported by the hardware vendor to run Windows 10? The only way to figure this out is to check directly with the hardware vendor. They typically will list on the support page of the particular model if Windows 10 is supported or not.
The second part is – are the models that I have that are supported by the vendor in a state that is ready to support Windows 10? Things like processor, memory and free hard disk space are things that need to be considered at the start of the project. Windows 10 Enterprise x64 requires a 1 GHz or faster processor, 2 GB of RAM (or 4 GB of RAM for the advanced security features that require Hyper-V) and 20 GB of free disk space.
The third part should be – are my hardware models configured correctly? Most vendors list out the BIOS/UEFI version that first introduced support for Windows 10. Chances are you want to be on the latest available release in order to be able to support security fixes and have the ability to programmatically change BIOS/UEFI settings. Also, are your systems still configured for BIOS? If so, there is no better time than now to switch them to UEFI. Planning on taking advantage the Windows 10 security features like BitLocker, Credential Guard and Device Guard? There are hardware configuration dependencies like Trusted Platform Module (TPM), Virtualization Technology and hardware enforced Data Execution Prevention.
With this information at your fingertips, you should be able to start to visualize what your Windows 10 project is going to look like from a hardware capability standpoint. You should be able to determine how many of the systems in your environment are capable of using the new In-place Upgrade method (meaning they are already running UEFI), how many are ready but are currently configured for BIOS and will require a Wipe and Load, how many should get a hardware refresh (i.e. they don’t support Windows 10 or the lease is up) and how many require more attention (maybe they support Windows 10 but do not have enough free disk space or enough memory).”
The following table outlines some of the classes and properties that should be used to help answer some of the above questions. Some of these classes and properties are already defined but not enabled in the default Hardware Inventory Settings in Configuration Manager, whereas others are not defined and will need to be added.
|WMI Data Source on Client||Comments|
|Caption||Name and edition of the current operating system|
|CSD Version||OS Service Pack|
|Indicates if NX/XD is available (required for Hyper-V)|
|Useful to compare with Win32_ComputerSystem.SystemType to identify 32-bit OS running on 64-bit System|
|ProductType||1=Workstation, 2=Domain Controller, 3= Server|
|SMBIOSBIOSVersion||BIOS Version as reported by the vendor usually alphanumeric|
|ReleaseDate||Release date of the BIOS verson – useful when comparing for a minimum version|
|ChassisTypes||Identify laptops, desktops, and other form factors (full reference here)|
|SystemType||Identify system architecture (x86/x64)|
|Useful when managing Lenovo systems|
|For Lenovo systems it contains the Make-Type-Model (i.e. MTM)|
|For Lenovo systems it contains the model family (ie. ThinkPad T450)|
|IsVirtualizationCapable||Processor virtualization is required for Virtual Secure Mode in Windows 10|
|NormSpeed||Use to check minimum supported processor speed (1GHz)***|
|Capacity||Use to check minimum supported memory (1GB on 32-bit, 2GB on 64-bit or 4GB for advanced security features that require Hyper-V)***|
|Use to check for minimum free disk space when doing an in-place upgrade. 16GB (32-bit) or 20GB (64 bit)***|
|Use to determine if firmware is running native UEFI or emulating BIOS. Refer to Inventory Secure Boot State and UEFI with ConfigMgr|
Use these attributes to determine TPM state
|Indicates whether the TPM is activated|
|Indicates whether the TPM is enabled|
|Indicates whether the TPM has an owner|
|The version(s) that the TPM supports|
* Property is defined in default Hardware Inventory settings but not enabled
** Property or class is not defined in default Hardware Inventory settings
This information is what the operating system is able to see and report on. However, in some cases it is necessary to further extend Configuration Manager so that it can collect vendor specific hardware settings. For example, if the TPM is not configured in the BIOS/UEFI, then the operating system will not be able to report on it. Using the vendor specific WMI classes and properties, Configuration Manager can be extended to pick up this information as well. Some vendors require software to be installed in order for these WMI classes and properties to appear (for example, Dell requires Dell Command | Monitor to be installed on the client), while others automatically populate their hardware specific information in WMI (for example, Lenovo implements the rootwmi class and HP implements the rootHPInstrumentedBIOS class).
By adding these classes and properties to your hardware inventory settings in Configuration Manager, you will not only have a good head start on your Windows 10 project, but you will also have the necessary information in order to manage the systems going forward to ensure that they are configured.