Vérifiez la préparation du matériel Windows 11 avec le script PowerShell
Dans cet article, nous verrons comment utiliser le script officiel Microsoft HardwareReadiness.ps1 PowerShell pour effectuer une vérification groupée de la compatibilité matérielle de Windows 11 sur les ordinateurs du domaine.
Ce script vérifie que l'ordinateur répond à la configuration minimale suivante pour exécuter Windows 11 :
Processeur x64 compatible (liste complète des processeurs pris en charge)
4+ Go de RAM
Taille minimale du disque dur de 64 Go
-
Appareil avec UEFI et Secure Boot activés
Carte vidéo compatible avec les pilotes DirectX 12 et WDDM 2.0
Module TPM2.0
Pour vérifier manuellement que le matériel d’une machine spécifique est compatible avec les exigences de Windows 11 :
Téléchargez le script HardwareReadiness.ps1 (https://aka.ms/HWReadinessScript).
Ouvrez une console Windows PowerShell élevée (le script utilise le
Get-WMIObjectapplet de commande, qui n'est pas prise en charge dans les versions récentes de PowerShell Core)
Activez l'exécution du script PowerShell dans la session en cours :
Set-ExecutionPolicy -Scope Process RemoteSignedExécutez le script :
.\HardwareReadiness.ps1
Le script a renvoyé le code 0. Cela signifie que votre ordinateur répond à la configuration matérielle requise pour Windows 11 (
returncode:0 , resurnresult=CAPABLE).
{"returnCode":0,"returnReason":"","logging":"Storage: OSDiskSize=427GB. PASS; Memory: System_Memory=32GB. PASS; TPM: TPMVersion=2.0, 0, 1.38. PASS; Processor: {AddressWidth=64; MaxClockSpeed=3901; NumberOfLogicalCores=12; Manufacturer=AuthenticAMD; Caption=AMD64 Family 25 Model 80 Stepping 0; }. PASS; SecureBoot: Capable. PASS; ","returnResult":"CAPABLE"}Supposons que vous deviez effectuer une vérification massive de la compatibilité Windows 11 sur les ordinateurs de l'entreprise. Dans ce cas, vous pouvez exécuter ce script PowerShell et collecter des informations à l'aide d'outils tels que SCCM, Intune ou même WSUS (qui peuvent également déployer des logiciels et des scripts tiers). Pour les cas simples, vous pouvez exécuter ce script PowerShell via les stratégies de groupe et enregistrer les résultats dans les propriétés de l'objet ordinateur dans Active Directory.
Le code du script original doit être légèrement modifié.
Notez que le code de ce fichier de script PowerShell est signé numériquement par Microsoft. Cependant, le certificat de signature a expiré en 2022.
Modifiez le fichier HardwareReadiness.ps1 et ajoutez le code suivant à la fin, avant le #SIG # Begin signature block :
$outObject = $outObject | ConvertTo-Json -Compress
$computer = $env:COMPUTERNAME
$ComputerSearcher = New-Object DirectoryServices.DirectorySearcher
# Specify your domain name
$ComputerSearcher.SearchRoot = "LDAP://DC=WOSHUB,DC=LOC"
$ComputerSearcher.Filter = "(&(objectCategory=Computer)(CN=$Computer))"
$computerObj = [ADSI]$ComputerSearcher.FindOne().Path
$computerObj.Put( "Info", $outObject )
$computerObj.SetInfo()Ce code PowerShell écrit les informations de compatibilité Windows 11 dans l'attribut d'ordinateur Info dans Active Directory.
Copiez le fichier de script PS1 dans le
\\a-d.loc\Netlogondossier sur le contrôleur de domaine.
Ouvrez la console de gestion des stratégies de groupe de domaine (
gpmc.msc), créez un nouveau GPO et liez-le à l’unité d’organisation de l’ordinateur.
Accédez à Configuration de l'ordinateur -> Stratégies -> Paramètres Windows -> Scripts (démarrage/arrêt) -> Démarrage -> onglet Scripts PowerShell et spécifiez le chemin UNC vers HardwareReadiness. Script .ps1
Accédez à Configuration ordinateur -> Modèles d'administration -> Système -> Stratégie de groupe. Activez la stratégie Configurer le délai du script de connexion et définissez un délai d'exécution du script 1 minute.
Activez également l'option Toujours attendre le réseau au démarrage et à la connexion de l'ordinateur sous Configuration ordinateur -> Modèles d'administration -> Système -> Connexion.
En savoir plus sur la façon d’exécuter des scripts de connexion PowerShell via GPO.
Redémarrez l'ordinateur du client. Démarrez la console ADUC (
dsa.msc) et ouvrez les propriétés de l'ordinateur. Accédez à l'onglet Éditeur d'attributs et vérifiez que le paramètre Info contient désormais les résultats de la vérification de la compatibilité de votre ordinateur avec Windows 11. Dans l'onglet Éditeur d'attributs, vérifiez que le paramètre Info contient désormais les résultats de la vérification de compatibilité Windows 11 de votre ordinateur.
Une fois le script de connexion exécuté sur tous les ordinateurs, vous pouvez rapidement afficher des informations sur les ordinateurs compatibles et incompatibles à partir d'Active Directory à l'aide de la cmdlet Get-ADComputer :
Get-ADComputer -Filter {enabled -eq "true"} -properties *| Where-Object {$_.info -ne $null}Pour des informations plus détaillées sur les ordinateurs incompatibles et le matériel informatique spécifique qui ne répond pas à la configuration minimale requise pour Win 11, exécutez le script PowerShell suivant :
$Report = @()
$computers = Get-ADComputer -Filter {enabled -eq "true"} -properties *| Where-Object { $_.Info -match '"returnCode":1'}
foreach ($computer in $computers){
$jsonString =$computer.info
$object = $jsonString | ConvertFrom-Json
$returnReasonValues = $object.returnReason -split ', '
$CompInfo = [PSCustomObject]@{
"Computer" = $computer.name
"NonCompatibleItems" = $returnReasonValues
}
$Report += $CompInfo
}
$Report|fl
L'applet de commande ConvertFrom-Json est utilisée pour convertir les données au format JSON.
Actuellement, vous pouvez ignorer la vérification du TPM, du démarrage sécurisé et d'autres exigences matérielles lors d'une nouvelle installation de Windows 11 en utilisant plusieurs options de registre dans la clé LabConfig. Et avec la clé AllowUpgradesWithUnsupportedTPMorCPU, vous pouvez effectuer une mise à niveau vers Windows 11 même sur des ordinateurs dotés de matériel non pris en charge.






