We got errors on our compliance policy after we enrolled them to Autopilot and I have the idea that the BIOS was correct configured. But instead of having the computer in hand. Together with a collegue we developed this script.
The script can from Proactive Remediation, check all computers in the WMI – and give you a feedback of how the BIOS is configured.
This is version 1.0 – so im sure there will be a better version – that make the report better.
Insert it as a Detection script.
outputArr = @()
##### CHECK TPM IS ENABLED
$TPMEnabled = wmic /namespace:\\root\cimv2\security\microsofttpm path win32_tpm get IsEnabled_InitialValue
if("TRUE" -in $TPMEnabled.Trim()){
$outputArr += " TPM Enabled "
}else{
$outputArr += " TPM Disabled "
}
##### CHECK TPM VERSION
$SpecVersionArray = (wmic /namespace:\\root\cimv2\security\microsofttpm path win32_tpm get SpecVersion)
$SpecVersionTxt = ""
foreach($SpecVersion in $SpecVersionArray){
if($SpecVersion.Trim() -ne "SpecVersion" -and $SpecVersion.Trim() -ne ""){
$SpecVersionTxt = $SpecVersion.Trim();
}
}
if($SpecVersionTxt -ne "" -and $SpecVersionTxt.IndexOf('2.0') -gt -1){
$outputArr += " $($SpecVersionTxt) "
}else{
$outputArr += " $($SpecVersionTxt) - Investigate if TPM can be upgraded to 2.0 "
}
##### CHECK CPU VENDOR
$captionArray = Wmic cpu get caption
$captionTxt = ""
foreach($caption in $captionArray){
if($caption.Trim() -ne "Caption" -and $caption.Trim() -ne ""){
$captionTxt = $caption.Trim()
}
}
if($captionTxt -ne ""){
$outputArr += " $($captionTxt) "
}else{
$outputArr += " Caption missing "
}
##### CHECK VIRTUALIZATION IS ENABLED
$virtualization = systeminfo
$virtualizationTxt = $virtualization.Trim() | ? { $_ -like "*hypervisor has been detected*" }
if($virtualizationTxt -ne $null){
$outputArr += " Virtualization is ENABLED "
}else{
$outputArr += " Enabled Virtualization in BIOS "
}
##### CHECK Secure BOOT and UEFI is ENABLED
$uefi = (Confirm-SecureBootUEFI)
if($uefi){
$outputArr += " Secure Boot and UEFI is ENABLED "
}else{
$outputArr += " Secure Boot and UEFI is DISABLED, CHECK BIOS "
}
Write-Host ($outputArr -join " // ")
