ค้นหาเว็บไซต์

ตรวจสอบความพร้อมของฮาร์ดแวร์ Windows 11 ด้วยสคริปต์ PowerShell


ในบทความนี้ เราจะดูวิธีใช้สคริปต์ PowerShell HardwareReadiness.ps1 อย่างเป็นทางการของ Microsoft เพื่อทำการตรวจสอบความเข้ากันได้ของฮาร์ดแวร์ Windows 11 จำนวนมากบนคอมพิวเตอร์โดเมน

สคริปต์นี้จะตรวจสอบว่าคอมพิวเตอร์มีคุณสมบัติตรงตามข้อกำหนดขั้นต่ำต่อไปนี้เพื่อเรียกใช้ Windows 11:

  • โปรเซสเซอร์ x64 ที่เข้ากันได้ (รายชื่อ CPU ที่รองรับทั้งหมด)

  • แรม 4+GB

  • ขนาดฮาร์ดไดรฟ์ขั้นต่ำ 64 GB

  • อุปกรณ์ที่เปิดใช้งาน UEFI และ Secure Boot

  • การ์ดแสดงผลเข้ากันได้กับไดรเวอร์ DirectX 12 และ WDDM 2.0

  • โมดูล TPM 2.0

หากต้องการตรวจสอบด้วยตนเองว่าฮาร์ดแวร์ของเครื่องเฉพาะเข้ากันได้กับข้อกำหนดของ Windows 11:

  1. ดาวน์โหลดสคริปต์ HardwareReadiness.ps1 (https://aka.ms/HWReadinessScript)

  2. เปิดคอนโซล Windows PowerShell ที่ยกระดับ (สคริปต์ใช้นามสกุล

    Get-WMIObject

    cmdlet ซึ่งไม่รองรับใน PowerShell Core เวอร์ชันล่าสุด)

  3. เปิดใช้งานการดำเนินการสคริปต์ PowerShell ในเซสชันปัจจุบัน:

    Set-ExecutionPolicy -Scope Process RemoteSigned
  4. เรียกใช้สคริปต์:

    .\HardwareReadiness.ps1

สคริปต์ส่งคืนโค้ด 0 ซึ่งหมายความว่าคอมพิวเตอร์ของคุณมีคุณสมบัติตรงตามข้อกำหนดด้านฮาร์ดแวร์สำหรับ 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"}

สมมติว่าคุณต้องทำการตรวจสอบความเข้ากันได้ของ Windows 11 จำนวนมากบนคอมพิวเตอร์ระดับองค์กร ในกรณีนั้น คุณสามารถเรียกใช้สคริปต์ PowerShell นี้และรวบรวมข้อมูลโดยใช้เครื่องมือ เช่น SCCM, Intune หรือแม้แต่ WSUS (ซึ่งสามารถปรับใช้ซอฟต์แวร์และสคริปต์ของบริษัทอื่นได้เช่นกัน) ในกรณีง่ายๆ คุณสามารถเรียกใช้สคริปต์ PowerShell นี้ผ่านนโยบายกลุ่มและบันทึกผลลัพธ์ในคุณสมบัติของออบเจ็กต์คอมพิวเตอร์ใน Active Directory

โค้ดสคริปต์ต้นฉบับจำเป็นต้องแก้ไขเล็กน้อย

โปรดทราบว่ารหัสของไฟล์สคริปต์ PowerShell นี้มีการลงนามแบบดิจิทัลโดย Microsoft อย่างไรก็ตาม ใบรับรองการลงนามจะหมดอายุในปี 2565

แก้ไขไฟล์ HardwareReadiness.ps1 และเพิ่มโค้ดต่อไปนี้ต่อท้าย ก่อน #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()

รหัส PowerShell นี้เขียนข้อมูลความเข้ากันได้ของ Windows 11 ไปยังแอตทริบิวต์คอมพิวเตอร์ ข้อมูล ใน Active Directory

คัดลอกไฟล์สคริปต์ PS1 ไปยังไฟล์

\\a-d.loc\Netlogon

โฟลเดอร์บนตัวควบคุมโดเมน

เปิดคอนโซลการจัดการนโยบายกลุ่มโดเมน (

gpmc.msc

) สร้าง GPO ใหม่และเชื่อมโยงกับ OU ของคอมพิวเตอร์

ไปที่ การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> การตั้งค่า Windows -> สคริปต์ (เริ่มต้น/ปิดเครื่อง) -> เริ่มต้น -> แท็บ สคริปต์ PowerShell และระบุเส้นทาง UNC ไปยัง HardwareReadiness สคริปต์ .ps1

ไปที่การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ระบบ -> นโยบายกลุ่ม เปิดใช้งานนโยบาย กำหนดค่าความล่าช้าของสคริปต์การเข้าสู่ระบบ และตั้งค่าความล่าช้าในการดำเนินการสคริปต์ 1 นาที

นอกจากนี้ ให้เปิดใช้งานตัวเลือก รอเครือข่ายเสมอเมื่อคอมพิวเตอร์เริ่มต้นและเข้าสู่ระบบ ภายใต้การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตผู้ดูแลระบบ -> ระบบ -> เข้าสู่ระบบ

อ่านเพิ่มเติมเกี่ยวกับวิธีการเรียกใช้สคริปต์ PowerShell การเข้าสู่ระบบผ่าน GPO

รีบูทคอมพิวเตอร์ของลูกค้า เริ่มคอนโซล ADUC (

dsa.msc

) และเปิดคุณสมบัติของคอมพิวเตอร์ ไปที่แท็บ ตัวแก้ไขแอตทริบิวต์ และตรวจสอบว่าพารามิเตอร์ ข้อมูล มีผลการตรวจสอบความเข้ากันได้ของ Windows 11 ในคอมพิวเตอร์ของคุณแล้ว ในแท็บตัวแก้ไขแอตทริบิวต์ ตรวจสอบว่าพารามิเตอร์ ข้อมูล มีผลการตรวจสอบความเข้ากันได้ของ Windows 11 ของคอมพิวเตอร์ของคุณแล้ว

เมื่อสคริปต์การเข้าสู่ระบบถูกเรียกใช้บนคอมพิวเตอร์ทุกเครื่อง คุณสามารถดูข้อมูลเกี่ยวกับคอมพิวเตอร์ที่เข้ากันได้และเข้ากันไม่ได้จาก Active Directory ได้อย่างรวดเร็วโดยใช้ Get-ADComputer cmdlet:

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

สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับคอมพิวเตอร์ที่เข้ากันไม่ได้และฮาร์ดแวร์คอมพิวเตอร์เฉพาะที่ไม่ตรงตามข้อกำหนดขั้นต่ำของ Win 11 ให้เรียกใช้สคริปต์ PowerShell ต่อไปนี้:

$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

ConvertFrom-Json cmdlet ใช้เพื่อแปลงข้อมูลจากรูปแบบ JSON

ในปัจจุบัน คุณสามารถเพิกเฉยต่อการตรวจสอบ TPM, Secure Boot และข้อกำหนดด้านฮาร์ดแวร์อื่นๆ ในระหว่างการติดตั้ง Windows 11 ใหม่ทั้งหมดได้ โดยใช้ตัวเลือกรีจิสทรีต่างๆ ในคีย์ LabConfig และด้วยคีย์ AllowUpgradesWithUnsupportedTPMorCPU คุณสามารถอัปเกรดเป็น Windows 11 ได้แม้บนคอมพิวเตอร์ที่มีฮาร์ดแวร์ที่ไม่รองรับ