Блог

В этой статье мы расскажем, как проверить совместимость ваших компьютеров с Windows 11 с помощью PowerShell. Мы будем использовать официальный скрипт HardwareReadiness.ps1 от Microsoft, который можно скачать по ссылке: https://aka.ms/HWReadinessScript.

Приобрести оригинальные ключи активации Windows 11 можно у нас в каталоге от 1199 ₽

Минимальные требования для запуска Windows 11:

1. Совместимый x64 процессор (полный список поддерживаемых CPU)

2. 4+ ГБ оперативной памяти (RAM)

3. Минимальный размер диска — 64 ГБ

4. Устройство с UEFI и включенной Secure Boot

5. Видеокарта, совместимая с DirectX 12 и WDDM 2.0 драйверов

6. TPM 2.0 модуль

7. Монитор с разрешением 720p

Шаги для проверки совместимости компьютера вручную:

1. Скачайте скрипт HardwareReadiness.ps1

2. Откройте Windows PowerShell с правами администратора (так как в скрипте используется командлет Get-WMIObject, который не поддерживается в более новой версии PowerShell Core).

3. Разрешите запуск PowerShell скрипта в текущей сессии:

Set-ExecutionPolicy -Scope Process RemoteSigned

4. Запустите скрипт:

HardwareReadiness.ps1

Результат выполнения скрипта:

Скрипт вернет код 0, если компьютер совместим с требованиями Windows 11 (returnCode: 0, returnResult: 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"}

Массовая проверка компьютеров на совместимость с Windows 11

Если необходимо проверить множество корпоративных компьютеров, можно использовать такие инструменты как SCCM, Intune или даже WSUS для запуска сторонних скриптов. В более простом случае можно использовать групповые политики для запуска скрипта и сохранения результатов в свойствах компьютера в Active Directory.

Модификация скрипта для записи информации в AD

Чтобы записать информацию о совместимости в Active Directory, отредактируйте скрипт HardwareReadiness.ps1 и добавьте в конце следующий код перед блоком #SIG # Begin signature block:


$outObject = $outObject | ConvertTo-Json -Compress
$computer = $env:COMPUTERNAME
$ComputerSearcher = New-Object DirectoryServices.DirectorySearcher
# Укажите ваше имя домена
$ComputerSearcher.SearchRoot = "LDAP://DC=CONTOSO,DC=COM"
$ComputerSearcher.Filter = "(&(objectCategory=Computer)(CN=$Computer))"
$computerObj = [ADSI]$ComputerSearcher.FindOne().Path
$computerObj.Put( "Info", $outObject )
$computerObj.SetInfo()

Этот код запишет в атрибут компьютера Info в Active Directory информацию о совместимости с Windows 11.

Запуск скрипта через GPO

1. Скопируйте скрипт в папку \\winitpro.loc\Netlogon на контроллере домена.

2. Откройте консоль управления доменными групповыми политиками (gpmc.msc) и создайте новую GPO для OU с компьютерами.

3. Перейдите в раздел Конфигурация компьютера > Политики > Настройки Windows > Скрипты (Запуск / Завершение работы) -> Запуск (Англ: Computer Configuration > Policies > Windows Settings > Scripts (Startup / Shutdown) -> Startup) вкладка PowerShell Scripts и укажите UNC путь к скрипту HardwareReadiness.ps1.

Также включите следующие параметры политики:

Configure Logon Script Delay и задайте 1 минуту задержки запуска скрипта.

Always wait for the network at computer startup and logon в разделе Computer Configuration -> Admin Templates -> System -> Logon.

Проверка результатов в Active Directory

Перезагрузите компьютер. Затем откройте консоль ADUC (dsa.msc) и откройте свойства компьютера. На вкладке редактора атрибутов проверьте, что в параметре Info теперь содержится информация о совместимости с Windows 11.

Вывод информации о совместимых и несовместимых компьютерах из Active Directory

После того как логон скрипт отработает на всех компьютерах, можно быстро получить информацию о совместимых и несовместимых компьютерах с помощью командлета Get-ADComputer:

Get-ADComputer -Filter {enabled -eq "true"} -properties * | Where-Object {$_.info -ne $null}

Чтобы вывести более подробную информацию о несовместимых компьютерах:


$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

Для преобразования данных из JSON формата используется командлет ConvertFrom-Json.

Купить ключ активации Windows 11 от
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии