La sécurité des postes de travail ne s’arrête pas qu’au système d’exploitation. Le BIOS/UEFI reste une porte d’entrée critique, souvent négligée ou oubliée. Sur les environnements professionnels, il est recommandé de protéger l’accès au BIOS avec un mot de passe afin d’éviter toute modification non autorisée de la configuration matérielle. Pour mettre en place un mot de passe BIOS vous pouvez utiliser des outils comme HP Bios Config Utility ou un outil dernièrement sorti HP Connect.

Avec Microsoft Intune, il est possible d’aller plus loin que les règles natives de conformité en créant une Custom Compliance. Dans cet article, nous allons voir comment mettre en place cette règle pour s’assurer que le mot de passe BIOS est bien configuré sur des ordinateurs HP.
Étape 1 – Préparer un script de détection
Le but est de vérifier si un mot de passe BIOS est défini. Nous allons pour cela interroger la classe WMI HP_BiosSetting.
https://developers.hp.com/hp-client-management/doc/understanding-hp-bios-settings
$CurrentStatus = Get-wmiobject -namespace root\hp\instrumentedbios -class HP_BiosSetting | Where-object name -EQ « Setup Password » | Select -expandProperty isSet
Et vérifier la propriété « IsSet » de l’objet « Setup Password » puis la comparer avec la valeur attendue, ici 1. Si le mot de passe est en place, on retourne $true sinon $false.
$ExpectedStatus = « 1 »
$ReturnStatus = if ($ExpectedStatus -ne $CurrentStatus) {
$false
Write-Host « Bios Pwd not OK »
} else {
$true
Write-Host « Bios Pwd OK »
}
On transforme la valeur retournée en sortie JSON qu’Intune pourra interpréter
$output = @{
HPBiosBiospwdStatus = $ReturnStatus
}
return $output | ConvertTo-Json -Compress
Etape 2 – Préparation du JSON
La deuxième action consiste à créer un fichier JSON qui servira à définir les paramètres que la politique de conformité de l’appareil doit vérifier, ainsi que les valeurs acceptables pour ces paramètres. Ce fichier contient également des options permettant de configurer un message indiquant à l’utilisateur la marche à suivre lorsque l’appareil n’est pas conforme au paramètre de conformité personnalisé. Le fichier JSON doit contenir les informations suivantes :
SettingName – Nom du paramètre de conformité personnalisé, tel que renvoyé par le script PowerShell
Operator – Opérateur (IsEquals, NotEquals, GreaterThan, GreaterEquals, LessThan, LessEquals) spécifiant l’action à utiliser pour la règle de conformité
DataType – Type de données (Boolean, Int64, Double, String, DateTime, Version) spécifiant les données, tel que renvoyé par le script PowerShell
Operand – L’opérande représente la valeur cible
MoreInfoURL – URL fournissant plus d’informations sur le paramètre de conformité personnalisé
RemediationStrings – Informations sur la non-conformité
Pour notre cas :
{
« Rules »:[
{
« SettingName »: »HPBiosBiospwdStatus »,
« Operator »: »IsEquals »,
« DataType »: »Boolean »,
« Operand »: »true »,
« MoreInfoUrl »: »https://yoururl »,
« RemediationStrings »:[
{
« Language »: « en_US »,
« Title »: « BIOSPasswordState Value discovered was {ActualValue}. »,
« Description »: « BIOSPassword is not set as required »
}
]
}
]
}
Vous retrouverez le script Powershell et le fichier JSON sur mon GitHub : https://github.com/LeblogModernWorkplace/Intune-CustomCompliance/tree/main/CheckHPBiosPwdSet
Etape 3 – Import du script dans Intune et création de la règle de conformité custom
1/ Import du script
- Aller dans la partie Windows \ Compliance et choisir Scripts sur le haut
- Ajouter votre script Powershell via le bouton Add et en choisissant Windows 10 and later

- Copier ensuite le contenu du script et sélectionnez les options tel que :

- Pour finir, validez la création du script
2/ Création de la règle de conformité
- Aller dans la partie Windows \ Compliance et choisir Policies,
- Créer votre politique de manière classique
- Dans la partie « Custom Compliance », cliquez sur « Require »
- Choisir le script de découverte précédemment importé
- Chargé le fichier JSON de résultat (Dispo dans le github)

- Terminer la création de la policy et déployer la sur votre cible.
Petit conseil : pensez à ajouter un filtre pour ne cibler que les postes HP.


Etape 4 : Résultats
On va terminer cet article par une visualisation du résultat dans la console d’administration Microsoft Intune

Nous pouvons voir l’état de conformité du parc vis à vis de cette règle, les postes en « Other » sont ceux qui ne sont pas concernés par la règle (Filtre)
Coté utilisateur final, il verra dans son portail d’entreprise que le poste n’est pas conforme avec les informations entrées dans le JSON notamment le Title et la Description.
Conclusion
Cette approche illustre comment les fonctionnalités de Custom Compliance ouvrent la voie à un pilotage plus fin de la sécurité des postes de travail, au-delà des simples paramètres Windows.