ตรวจสอบความพร้อมของฮาร์ดแวร์ 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:
ดาวน์โหลดสคริปต์ HardwareReadiness.ps1 (https://aka.ms/HWReadinessScript)
เปิดคอนโซล Windows PowerShell ที่ยกระดับ (สคริปต์ใช้นามสกุล
Get-WMIObjectcmdlet ซึ่งไม่รองรับใน PowerShell Core เวอร์ชันล่าสุด)
เปิดใช้งานการดำเนินการสคริปต์ PowerShell ในเซสชันปัจจุบัน:
Set-ExecutionPolicy -Scope Process RemoteSignedเรียกใช้สคริปต์:
.\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 ได้แม้บนคอมพิวเตอร์ที่มีฮาร์ดแวร์ที่ไม่รองรับ






