หมายเหตุ
วันที่เผยแพร่ต้นฉบับ: วันที่ 16 มีนาคม 2569
อัปเดตล่าสุด: วันที่ 12 พฤษภาคม 2026
KB ID: 5084567
ในบทความนี้
- ภาพรวม
- ฟีเจอร์หลัก
- ข้อมูลอ้างอิงเกี่ยวกับการตั้งค่า Updates ใบรับรอง
- สถาปัตยกรรม
- ขั้นที่ 1: การตรวจสอบและตรวจสอบสถานะที่ Enterprise leve
- Phase 2: Secure Boot Certificate Update Orchestration Script
- ขั้นตอนการปรับใช้ E2E (คู่มืออ้างอิงโดยสรุป)
- การแก้ไขปัญหา
- เปลี่ยนล็อก
ภาพรวม
คู่มือนี้อธิบายระบบการปรับใช้อัตโนมัติสําหรับการอัปเดตใบรับรอง Windows Secure Boot DB โดยใช้คลื่นนโยบายกลุ่มและการเปิดตัวแบบก้าวหน้า
Secure Boot Certificate Rollout Automation เป็นระบบที่ใช้ PowerShell ที่ปรับใช้การอัปเดตใบรับรอง Windows Secure Boot DB กับเครื่องที่เข้าร่วมโดเมนในลักษณะผู้สําเร็จการศึกษาที่มีการควบคุม
ฟีเจอร์หลัก
| ฟีเจอร์ | คำอธิบาย |
|---|---|
| การเปิดตัวระดับบัณฑิตศึกษา | 1 > 2 > 4 > 8... อุปกรณ์ต่อบักเก็ต |
| การบล็อกอัตโนมัติ | บักเก็ตที่มีอุปกรณ์ที่ไม่สามารถเข้าถึงได้ไม่ได้รับการยกเว้น |
| การปรับใช้ GPO อัตโนมัติ | สคริปต์ผู้ประสานเดียวจัดการทุกอย่าง |
| การดําเนินการงานตามกําหนดการ | ไม่จําเป็นต้องมีพร้อมท์แบบโต้ตอบ |
| การตรวจสอบแบบเรียลไทม์ | ตัวแสดงสถานะที่มีแถบความคืบหน้า |
ข้อมูลอ้างอิงเกี่ยวกับการตั้งค่า Updates ใบรับรอง
ในส่วนนี้
นโยบายกลุ่ม AvailableUpdatesPolicy
| ตําแหน่งที่ตั้งของรีจิสทรี | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecureBoot |
|---|---|
| ชื่อ | AvailableUpdatesPolicy |
| ค่า | 0x5944 (DWORD) |
นี่คือคีย์ที่ควบคุมโดย GPO/ADMX ที่:
- คงอยู่ในการเริ่มต้นระบบใหม่ทั้งหมด
- ตั้งค่าโดย นโยบายกลุ่ม / MDM
- ไม่ทําให้เกิดลูปลองใหม่ (ล้างผ่าน ClearRolloutFlags)
- คีย์ที่ถูกต้องสําหรับการปรับใช้ตามนโยบาย
การอ้างอิง: นโยบายกลุ่ม Objects (GPO) ของวิธีการบูตแบบปลอดภัยสําหรับอุปกรณ์ Windows ด้วยการอัปเดตที่จัดการโดย IT
กลับไป "ข้อมูลอ้างอิงการตั้งค่าใบรับรอง Updates"
WinCSFlags - การตั้งค่าสถานะระบบการกําหนดค่า Windows
ผู้ดูแลระบบโดเมนอาจใช้ Windows Configuration System (WinCS) ที่เผยแพร่พร้อมกับการอัปเดตระบบปฏิบัติการ Windows เพื่อปรับใช้การอัปเดตการบูตแบบปลอดภัยในไคลเอ็นต์และเซิร์ฟเวอร์ของ Windows ที่เข้าร่วมโดเมน ซึ่งประกอบด้วย โปรแกรมอรรถประโยชน์ส่วนติดต่อบรรทัดคําสั่ง (CLI) เพื่อสอบถามและใช้การกําหนดค่า Secure Boot ภายในเครื่อง
| ชื่อฟีเจอร์ | แป้น WinCS | คำอธิบาย |
|---|---|---|
| Feature_AllKeysAndBootMgrByWinCS | F33E0C8E002 | การเปิดใช้งานคีย์นี้จะช่วยให้การติดตั้งใบรับรองใหม่ของการบูตแบบปลอดภัยที่ Microsoft มีให้ในอุปกรณ์ของคุณได้
|
การอ้างอิง: API Windows Configuration System (WinCS) สําหรับการบูตแบบปลอดภัย
กลับไป "ข้อมูลอ้างอิงการตั้งค่าใบรับรอง Updates"
สถาปัตยกรรม
ขั้นที่ 1: การตรวจสอบและตรวจสอบสถานะในระดับองค์กร
ในส่วนนี้
- สคริปต์ที่จําเป็นสําหรับเฟส 1
- การทดสอบภายในเครื่อง
- การตั้งค่าการใช้เครือข่ายร่วมกัน
- การปรับใช้ GPO
- สรุปการตั้งค่า GPO
- การตรวจสอบ
สคริปต์ที่จําเป็นสําหรับเฟส 1
ตัวอย่างสคริปต์การเก็บรวบรวมข้อมูลสินค้าคงคลัง Secure Boot
หมายเหตุ
สำคัญ บทความต่อไปนี้ที่มีสคริปต์ตัวอย่างถูกยกเลิกแล้ว หากคุณได้ติดตั้งการอัปเดต Windows ที่เผยแพร่ในวันที่ 12 พฤษภาคม 2026 หรือหลังจากนั้น จะพบสคริปต์ตัวอย่างได้ในโฟลเดอร์ %systemroot%\SecureBoot\ExampleRolloutScripts บนอุปกรณ์ของคุณ
| ชื่อสคริปต์ตัวอย่าง | วัตถุประสงค์ | ทํางานบน |
|---|---|---|
| ตัวอย่างสคริปต์ Detect-SecureBootCertUpdateStatus.ps1 | รวบรวมข้อมูลสถานะอุปกรณ์ | แต่ละจุดสิ้นสุด (ผ่าน GPO) |
| ตัวอย่างสคริปต์ Aggregate-SecureBootData.ps1 | สร้างรายงานและแดชบอร์ด | เวิร์กสเตชัน Admin |
| ตัวอย่างสคริปต์ Deploy-GPO-SecureBootCollection.ps1 | ทําให้การสร้าง GPO โดยอัตโนมัติสําหรับการรวบรวมข้อมูล | ตัวควบคุมโดเมน |
ผลลัพธ์ตัวอย่างจากสคริปต์เฟส 1 ข้างต้น
กลับไปเป็น "Phase 1: Detection and Status Monitoring at Enterprise level"
การทดสอบภายในเครื่อง
ก่อนที่จะปรับใช้ผ่าน GPO ให้ทดสอบสคริปต์คอลเลกชันบนเครื่องเดียวเพื่อตรวจสอบฟังก์ชันการทํางาน
เรียกใช้สคริปต์คอลเลกชันภายในเครื่อง
เปิดพร้อมท์ PowerShell ที่ยกระดับและดําเนินการ:
หมายเหตุ
& .\Detect-SecureBootCertUpdateStatus.ps1 -OutputPath "C:\Temp\SecureBootTest"ตรวจสอบผลลัพธ์ JSON
หมายเหตุ
# View the collected data
Get-Content "C:\Temp\SecureBootTest\*_latest.json" | ConvertFrom-Json | Format-Listเขตข้อมูลหลักที่จะตรวจสอบ
• SecureBootEnabled – ควรเป็น True หรือ False
• ภาพรวม – เสร็จสมบูรณ์, ReadyForUpdate, NeedsData หรือข้อผิดพลาด
• BucketHash – บักเก็ตอุปกรณ์เพื่อการจับคู่ข้อมูลอย่างมั่นใจ
• SecureBootTaskEnabled - แสดงสถานะของงานการอัปเดตการบูตแบบปลอดภัยสคริปต์การรวมการทดสอบ
หมายเหตุ
# Generate reports from collected data
& ".\Aggregate-SecureBootData.ps1" '
-InputPath "C:\Temp\SecureBootTest" '
-OutputPath "C:\Temp\SecureBootReports"
เปิดแดชบอร์ด HTML
Start-Process "C:\Temp\SecureBootReports\SecureBoot_Dashboard_*.html"
กลับไปเป็น "Phase 1: Detection and Status Monitoring at Enterprise level"
การตั้งค่าการใช้เครือข่ายร่วมกัน
สร้างเครือข่ายที่ใช้ร่วมกัน
ในไฟล์เซิร์ฟเวอร์ของคุณ ให้สร้างการแชร์เฉพาะสําหรับข้อมูลคอลเลกชัน:
หมายเหตุ
# Run on file server as Administrator
$SharePath = "D:\SecureBootCollection"
$ShareName = "SecureBootData$"
สร้างโฟลเดอร์
New-Item -ItemType Directory -Path $SharePath -Force
สร้างส่วนที่ใช้ร่วมกันที่ซ่อนไว้ (ซ่อนคําต่อท้าย$ จากรายการเรียกดู)
New-SmbShare -ชื่อ $ShareName -เส้นทาง $SharePath '
-คําอธิบาย "คอลเลกชันสถานะใบรับรองการบูตแบบปลอดภัย" '
-FullAccess "ผู้ดูแลระบบโดเมน" '
-ChangeAccess "คอมพิวเตอร์โดเมน"การกําหนดค่าสิทธิ์ NTFS
หมายเหตุ
# Get current ACL
$Acl = Get-Acl $SharePath
อนุญาตให้ผู้ใช้ที่ได้รับการรับรองความถูกต้องสามารถเขียนไฟล์ได้
$WriteRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
"คอมพิวเตอร์โดเมน" และ
"ปรับเปลี่ยน"
"ContainerInherit,ObjectInherit",
"ไม่มี"
"อนุญาต"
)
$Acl.AddAccessRule($WriteRule)
อนุญาตการควบคุมโดยสมบูรณ์ของผู้ดูแลระบบโดเมน (สําหรับการรวม)
$AdminRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
"ผู้ดูแลระบบโดเมน"
"FullControl",
"ContainerInherit,ObjectInherit",
"ไม่มี"
"อนุญาต"
)
$Acl.AddAccessRule($AdminRule)
นําสิทธิ์ไปใช้
Set-Acl -เส้นทาง$SharePath -AclObject $Acl
ตรวจสอบการเข้าถึงการแชร์
หมายเหตุ
# Test from a domain-joined workstation
Test-Path "\\fileserver\SecureBootData$"ควรส่งกลับ: จริง
กลับไปเป็น "Phase 1: Detection and Status Monitoring at Enterprise level"
การปรับใช้ GPO
ใช้สคริปต์การทํางานอัตโนมัติที่มาจากตัวควบคุมโดเมน:
หมายเหตุ
เรียกใช้บนตัวควบคุมโดเมนเป็น Admin โดเมนสําหรับส่วน OU แบบโต้ตอบ – แนะนํา
แทนที่ "Contoso.com", "Contoso" ด้วยชื่อโดเมน
แทนที่ FILESERVER ด้วยชื่อเซิร์ฟเวอร์ไฟล์ สคริปต์แสดงรายการของ U เพื่อปรับใช้ GPO บน
.\Deploy-GPO-SecureBootCollection.ps1 '
-DomainName "contoso.com" '
-AutoDetectOU '
-CollectionSharePath "\\FILESERVER\SecureBootData$"
-ScriptSourcePath ".\Detect-SecureBootCertUpdateStatus.ps1" '
-กําหนดเวลา "รายวัน" '
-ScheduleTime "14:00" '
-RandomDelayHours 4
สคริปต์นี้จะดําเนินการดังต่อไปนี้:
- สร้าง GPO ใหม่ที่มีชื่อที่ระบุ
- คัดลอกสคริปต์คอลเลกชันไปยัง SYSVOL สําหรับความพร้อมใช้งานสูง
- กําหนดค่าสคริปต์การเริ่มต้นระบบคอมพิวเตอร์
- เชื่อมโยง GPO กับ OU เป้าหมาย
- เลือกสร้างงานที่กําหนดเวลาไว้สําหรับการรวบรวมตามช่วงเวลา
ตารางต่อไปนี้จะให้คําแนะนําเกี่ยวกับระยะเวลาที่ความล่าช้าจะยึดตามขนาดกองเรือของคุณ
| ขนาดกองเรือ | ช่วงการหน่วงเวลา |
|---|---|
| อุปกรณ์ 1-10K | 4 ชั่วโมง |
| อุปกรณ์ 10K-50K | 8 ชั่วโมง |
| อุปกรณ์ 50K+ | 12-24 ชั่วโมง |
กลับไปเป็น "Phase 1: Detection and Status Monitoring at Enterprise level"
สรุปการตั้งค่า GPO
| การตั้งค่า | ตำแหน่งที่ตั้ง | ค่า |
|---|---|---|
| สคริปต์การเริ่มต้นทํางาน | สคริปต์→การกําหนดค่าคอมพิวเตอร์ | Detect-SecureBootCertUpdateStatus.ps1 |
| พารามิเตอร์สคริปต์ | (เหมือนกัน) | -OutputPath "\\server\share$" |
| นโยบายการดําเนินการ | กําหนดค่าเทมเพลต→ Admin ของคอมพิวเตอร์→ PowerShell | อนุญาตการเซ็นชื่อภายในเครื่องและระยะไกล |
| งานที่จัดกําหนดการไว้ | กําหนดค่าการกําหนดลักษณะ→คอมพิวเตอร์→งานที่กําหนดเวลาไว้ | คอลเลกชันรายวัน/รายสัปดาห์ |
กลับไปเป็น "Phase 1: Detection and Status Monitoring at Enterprise level"
การตรวจสอบ
บังคับปรับปรุง GPO บน Machin ทดสอบe
หมายเหตุ
## On a test workstation
gpupdate /force
เริ่มต้นระบบเครื่องไคลเอ็นต์ใหม่เป็นสคริปต์เริ่มต้นระบบ หรือจะทริกเกอร์ในกําหนดการถัดไป
Restart-Computer -Force
ตรวจสอบการรวบรวมข้อมูล
หมายเหตุ
ตรวจสอบว่ามีการรวบรวมข้อมูล (บนเซิร์ฟเวอร์ไฟล์หรือจากเครื่องใดก็ได้)
Get-ChildItem "\\fileserver\SecureBootData$" |
Sort-Object LastWriteTime -จากมากไปหาน้อย | Ess9
Select-Object -First 10
ตรวจสอบเนื้อหา JSON
Get-Content "\\fileserver\SecureBootData$\TESTPC_latest.json" | ConvertFrom-Json
ตรวจสอบโปรแกรมประยุกต์ GPO
หมายเหตุ
ตรวจสอบว่ามีการนํา GPO ไปใช้กับคอมพิวเตอร์
Select-String "SecureBoot"
สคริปต์ยังบันทึกสําเนาภายในเครื่องเพื่อความซ้ําซ้อนด้วย:
Get-ChildItem "C:\ProgramData\SecureBootCollection\"
กลับไปเป็น "Phase 1: Detection and Status Monitoring at Enterprise level"
ขั้นที่ 2: การอัปเดตใบรับรองการบูตแบบปลอดภัยสคริปต์ Orchestration
สำคัญ
ตรวจสอบให้แน่ใจว่า Phase1 เสร็จสมบูรณ์แล้ว รวมถึงการรวบรวมข้อมูลในแต่ละจุดสิ้นสุดไปยังการแชร์เซิร์ฟเวอร์ระยะไกล
ในส่วนนี้
- สคริปต์ที่จําเป็นสําหรับเฟส 2
- Start-SecureBootRolloutOrchestrator.ps1
- Deploy-OrchestratorTask.ps1
- Get-SecureBootRolloutStatus.ps1
สคริปต์ที่จําเป็นสําหรับเฟส 2
ตัวอย่างสคริปต์การเก็บรวบรวมข้อมูลสินค้าคงคลัง Secure Boot
หมายเหตุ
สำคัญ บทความต่อไปนี้ที่มีสคริปต์ตัวอย่างถูกยกเลิกแล้ว หากคุณได้ติดตั้งการอัปเดต Windows ที่เผยแพร่ในวันที่ 12 พฤษภาคม 2026 หรือหลังจากนั้น จะพบสคริปต์ตัวอย่างได้ในโฟลเดอร์ %systemroot%\SecureBoot\ExampleRolloutScripts บนอุปกรณ์ของคุณ
| ตัวอย่างชื่อสคริปต์ | วัตถุประสงค์ | เรียกใช้งานบน: |
|---|---|---|
| ตัวอย่างสคริปต์ Detect-SecureBootCertUpdateStatus.ps1 | รวบรวมข้อมูลสถานะอุปกรณ์ | แต่ละจุดสิ้นสุด (ผ่าน GPO) |
| ตัวอย่างสคริปต์ Aggregate-SecureBootData.ps1 | สร้างรายงานและแดชบอร์ด | เวิร์กสเตชัน Admin |
| ตัวอย่างสคริปต์ Deploy-GPO-SecureBootCollection.ps1 | ทําให้การสร้าง GPO โดยอัตโนมัติสําหรับการรวบรวมข้อมูล | ตัวควบคุมโดเมน |
| ตัวอย่างสคริปต์ Start-SecureBootRolloutOrchestrator.ps1 | การประสมที่ต่อเนื่องและเป็นอัตโนมัติอย่างเต็มรูปแบบด้วยการปรับใช้ GPO อัตโนมัติสําหรับการติดตั้งใบรับรอง | เวิร์กสเตชัน Admin |
| ตัวอย่างสคริปต์ Deploy-OrchestratorTask.ps1 | ปรับใช้สคริปต์ Orchestrator เป็นงานที่กําหนดเวลาไว้สําหรับการเผยแพร่อัตโนมัติ | ตัวควบคุมโดเมน |
| ตัวอย่างสคริปต์ Get-SecureBootRolloutStatus.ps1 | ดูสถานะการเผยแพร่ใบรับรองการบูตแบบปลอดภัยจากเวิร์กสเตชันใดๆ | เวิร์กสเตชัน Admin |
| ตัวอย่างสคริปต์ Enable-SecureBootUpdateTask.ps1 | เปิดใช้งานการอัปเดตการบูตแบบปลอดภัย | บนจุดสิ้นสุดที่งานถูกปิดใช้งาน (เรียกใช้เพียงครั้งเดียวเพื่อเปิดใช้งานถ้าปิดใช้งาน) |
กลับไปยัง "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Start-SecureBootRolloutOrchestrator.ps1
วัตถุ ประสงค์: การประสมที่ต่อเนื่องและเป็นอัตโนมัติอย่างเต็มรูปแบบด้วยการปรับใช้ GPO อัตโนมัติ
หน้าที่
Aggregate-SecureBootData.ps1 การโทรสําหรับสถานะอุปกรณ์
สร้างคลื่นการเปิดตัวโดยใช้ลูกคลื่นแบบโปรเกรสซีฟ
สร้าง GPO สําหรับการปรับใช้ใบรับรองโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
- นโยบายกลุ่มการบูตแบบปลอดภัย AvailableUpdatesPolicy = 0x5944 (ค่าเริ่มต้น)
- เมธอด WinCS (พารามิเตอร์ –UseWinCS)
สร้างกลุ่มความปลอดภัย AD สําหรับการกําหนดเป้าหมาย
เพิ่มบัญชีคอมพิวเตอร์ลงในกลุ่มความปลอดภัย
กําหนดค่าการกรองความปลอดภัยของ GPO
เชื่อมโยง GPO กับ OU เป้าหมาย
จอภาพสําหรับบักเก็ตที่ถูกบล็อก (อุปกรณ์ที่ไม่สามารถเข้าถึงได้)
ยกเลิกการบล็อกอัตโนมัติเมื่ออุปกรณ์กู้คืน
ใช้
หมายเหตุ
# Interactive (testing)
.\Start-SecureBootRolloutOrchestrator.ps1 '
-AggregationInputPath "\\fileserver\SecureBootData$" '
-ReportBasePath "C:\SecureBootReports" '
-PollIntervalMinutes 30หมายเหตุ
# Interactive (testing), leveraging WinCS method
.\Start-SecureBootRolloutOrchestrator.ps1 '
-AggregationInputPath "\\fileserver\SecureBootData$" '
-ReportBasePath "C:\SecureBootReports" '
-PollIntervalMinutes 30 '
-UseWinCSคําสั่ง Admin
หมายเหตุ
# List blocked buckets
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBucketsหมายเหตุ
# Unblock specific bucket
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "Dell|ละติจูด 5520|BIOS1.2"หมายเหตุ
# Unblock all
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockAllพารามิเตอร์
พารามิเตอร์ เริ่ม ต้น คำอธิบาย AggregationInputPath จำเป็น เส้นทาง UNC ไปยังไฟล์ JSON จุดสิ้นสุด ReportBasePath จำเป็น พาธเฉพาะที่สําหรับรายงานและรัฐ TargetOU รากโดเมน OU เพื่อเชื่อมโยง GPO WavePrefix SecureBoot-Rollout คํานําหน้าการตั้งชื่อ GPO/กลุ่ม MaxWaitHours 72 ชั่วโมงก่อนการตรวจสอบความสามารถในการเข้าถึงอุปกรณ์ PollIntervalMinutes 1440 นาทีระหว่างการตรวจสอบสถานะ DryRun เท็จ แสดงสิ่งที่จะเกิดขึ้นโดยไม่มีการเปลี่ยนแปลง หมายเหตุ
หมายเหตุเกี่ยวกับ PollIntervalMinutes: เมื่อใช้งานผู้ประสานโดยตรง ค่าเริ่มต้นคือ 1440 นาที (24 ชั่วโมง) เมื่อปรับใช้ผ่านทาง Deploy-OrchestratorTask.ps1 ค่าเริ่มต้นคือ 30 นาที สคริปต์การปรับใช้จะส่งผ่านค่าเริ่มต้นของตนเองไปยังผู้ประสาน ใช้ 30 นาทีสําหรับการเปิดตัวที่ใช้งาน 1440 สําหรับการตรวจสอบการบํารุงรักษา
พารามิเตอร์ที่เลือกระบุได้
พารามิเตอร์ เริ่ม ต้น คำอธิบาย UseWinCS เท็จ ใช้เมธอด WinCS แทน AvailableUpdatesPolicy GPO WinCSKey F33E0C8E002 คีย์ WinCS สําหรับการกําหนดค่าการบูตแบบปลอดภัย AllowListPath (ไม่มี) เส้นทางไปยังไฟล์ที่มีชื่อโฮสต์เพื่ออนุญาตการเผยแพร่ที่กําหนดเป้าหมาย/นําร่อง รองรับ .txt หรือ .csv AllowADGroup (ไม่มี) กลุ่มความปลอดภัยของ AD ของบัญชีคอมพิวเตอร์เป็น ALLOW ตัวอย่างเช่น "SecureBoot-Pilot-Computers" ExclusionListPath (ไม่มี) เส้นทางไปยังไฟล์ที่มีชื่อโฮสต์เป็น EXCLUDE จากการเผยแพร่ (อุปกรณ์ VIP/ผู้บริหาร) ExcludeADGroup (ไม่มี) กลุ่มความปลอดภัยของ AD ของบัญชีคอมพิวเตอร์ที่จะไม่รวม ตัวอย่างเช่น "VIP-คอมพิวเตอร์" ListBlockedBuckets เท็จ แสดงกลุ่มอุปกรณ์ที่ถูกบล็อกในปัจจุบัน ยกเลิกการบล็อกบักเก็ต (ไม่มี) ยกเลิกการบล็อกกลุ่มที่ระบุ รูปแบบ: "ผู้ผลิต|รุ่น|BIOS" ยกเลิกการบล็อกทั้งหมด เท็จ ยกเลิกการบล็อกกลุ่มอุปกรณ์ที่ถูกบล็อกทั้งหมด
กลับไปยัง "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Deploy-OrchestratorTask.ps1
วัตถุ ประสงค์: ปรับใช้ผู้ประสานเป็นงานที่จัดกําหนดการของ Windows
สิทธิประโยชน์
- ไม่มีพร้อมท์ความปลอดภัย PowerShell (ExecutionPolicy Bypass)
- ทํางานอยู่เบื้องหลังอย่างต่อเนื่อง
- ไม่จําเป็นต้องมีการโต้ตอบของผู้ใช้
- เอาตัวรอดในการเริ่มต้นระบบใหม่
ใช้
ปรับใช้กับบัญชีบริการโดเมน (แนะนํา)
ใช้นโยบายกลุ่ม AvailableUpdates (วิธีเริ่มต้น)
หมายเหตุ
.\Deploy-OrchestratorTask.ps1 '
-AggregationInputPath "\\server\SecureBootData$" '
-ReportBasePath "C:\SecureBootReports" '
-ServiceAccount "DOMAIN\svc_secureboot"ใช้วิธีการ WinCS
หมายเหตุ
.\Deploy-OrchestratorTask.ps1 '
-AggregationInputPath "\\server\SecureBootData$" '
-ReportBasePath "C:\SecureBootReports" '
-ServiceAccount "DOMAIN\svc_secureboot" -UseWinCS
ปรับใช้ด้วยบัญชีระบบ
ใช้นโยบายกลุ่ม AvailableUpdates (วิธีเริ่มต้น)
หมายเหตุ
.\Deploy-OrchestratorTask.ps1 '
-AggregationInputPath "\\server\SecureBootData$" '
-ReportBasePath "C:\SecureBootReports"ใช้ method.\Deploy-OrchestratorTask.ps1WinCS
หมายเหตุ
-AggregationInputPath "\\server\SecureBootData$" '
-ReportBasePath "C:\SecureBootReports" -UseWinCSข้อกําหนดของบัญชีบริการ
- Admin โดเมน (สําหรับ New-GPO, New-ADGroup, Add-ADGroupMember)
- อ่านการเข้าถึงการแชร์ไฟล์ JSON
- เขียนการเข้าถึง ReportBasePath
กลับไปยัง "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
Get-SecureBootRolloutStatus.ps1
วัตถุ ประสงค์: ดูความคืบหน้าในการเผยแพร่จากเวิร์กสเตชันใดๆ
สิ่งที่แสดง
- สถานะงานที่จัดกําหนดการไว้ (กําลังเรียกใช้/พร้อม/หยุด)
- หมายเลขคลื่นปัจจุบัน
- อุปกรณ์ที่กําหนดเป้าหมายเปรียบเทียบกับการอัปเดต
- แถบความคืบหน้าแบบเป็นภาพ
- สรุปกลุ่มที่ถูกบล็อก
- ลิงก์ไปยังแดชบอร์ด HTML ล่าสุด
ใช้
หมายเหตุ
# Quick status check
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"หมายเหตุ
# Continuous monitoring (refreshes every 30 seconds)
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -Watch 30หมายเหตุ
# View blocked buckets
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowBlockedหมายเหตุ
# View wave history
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowWavesหมายเหตุ
# View recent log
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -ShowLogหมายเหตุ
# Open dashboard in browser
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboardพารามิเตอร์
พารามิเตอร์ ต้องระบุ เริ่ม ต้น คำอธิบาย ReportBasePath ต้องระบุ — เส้นทางเฉพาะที่ไปยังรายงานและไฟล์สถานะ ShowLog เสริม เท็จ แสดงรายการบันทึกผู้ประสานล่าสุด ShowBlocked เสริม เท็จ แสดงรายละเอียดกลุ่มที่ถูกบล็อก ShowWaves เสริม เท็จ แสดงประวัติคลื่น ดู เสริม 0 (ปิดใช้งาน) ช่วงเวลารีเฟรชอัตโนมัติเป็นวินาที ตัวอย่าง: -Watch 30 refreshes every 30 seconds. OpenDashboard เสริม เท็จ เปิดแดชบอร์ด HTML ล่าสุดในเบราว์เซอร์เริ่มต้น ผลลัพธ์ตัวอย่าง
หมายเหตุ
==============================================================
สถานะการเริ่มระบบแบบปลอดภัย
2026-02-17 19:30:00
======================================================Scheduled Task: RunningROLLOUT PROGRESS
สถานะ: InProgress
คลื่นปัจจุบัน: 5
เป้าหมายทั้งหมด: 1250
อัปเดตทั้งหมด: 847Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 67.8%BLOCKED BUCKETS: 2 buckets need attention
เรียกใช้ด้วย -ShowBlocked สําหรับรายละเอียดLATEST DASHBOARD
C:\SecureBootReports\Aggregation_20260217_193000\SecureBoot_Dashboard.html
__________________________________________________________________________________________
กลับไปยัง "Phase 2: Secure Boot Certificate Update Orchestration Scripts"
ขั้นตอนการปรับใช้ E2E (คู่มืออ้างอิงโดยสรุป)
ในส่วนนี้
ขั้นที่ 1: โครงสร้างพื้นฐานการตรวจจับ
ขั้นตอนที่ 1: สร้างคอลเลกชันที่แชร์
หมายเหตุ
# On file server
$sharePath = "D:\SecureBootData"
New-Item -ItemType Directory -Path $sharePath -Force
New-SmbShare -Name "SecureBootData$" -Path $sharePath -FullAccess "Domain Admins" -ChangeAccess "Domain Computers"หมายเหตุ
# Set NTFS permissions
$acl = Get-Acl $sharePath
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Domain Computers","Modify","Allow")
$acl AddAccessRule($rule)
Set-Acl $sharePath $aclขั้นตอนที่ 2: ปรับใช้ GPO ตรวจหา
หมายเหตุ
.\Deploy-GPO-SecureBootCollection.ps1 `
-DomainName "contoso.com" '
-OUPath "OU=Workstations,DC=contoso,DC=com" '
-CollectionSharePath "\\server\SecureBootData$"ขั้นตอนที่ 3: รอให้จุดสิ้นสุดรายงาน (24-48 ชั่วโมง)
หมายเหตุ
ตรวจสอบความคืบหน้าของคอลเลกชัน
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json") จำนวน
กลับไปเป็น "ขั้นตอนการปรับใช้ E2E (คู่มืออ้างอิงโดยสรุป)"
ขั้นที่ 2: การเปิดตัวแบบออร์เชสเทรต
ขั้นตอนที่ 4: ตรวจสอบข้อกําหนดเบื้องต้น
- GPO การตรวจหาที่ปรับใช้ (ขั้นตอนที่ 2)
- การรายงานจุดสิ้นสุดอย่างน้อย 50 จุดสิ้นสุด JSON
- บัญชีบริการที่มีสิทธิ์ Admin โดเมน
- เซิร์ฟเวอร์การจัดการด้วย PowerShell 5.1+
ขั้นตอนที่ 5: ปรับใช้ผู้ประสานเป็นงานที่จัดกําหนดการไว้
หมายเหตุ
.\Deploy-OrchestratorTask.ps1 `
-AggregationInputPath "\\server\SecureBootData$" '
-ReportBasePath "C:\SecureBootReports" '
-ServiceAccount "DOMAIN\svc_secureboot"ขั้นตอนที่ 6: ตรวจสอบความคืบหน้า
หมายเหตุ
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"ขั้นตอนที่ 7: ดูแดชบอร์ด
หมายเหตุ
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports" -OpenDashboardขั้นตอนที่ 8: จัดการบักเก็ตที่ถูกบล็อก
หมายเหตุ
# List blocked
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBucketsหมายเหตุ
# Investigate and unblock
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -UnblockBucket "ผู้ผลิต|รุ่น|BIOS"ขั้นตอนที่ 9: ตรวจสอบว่าเสร็จสมบูรณ์
หมายเหตุ
.\Get-SecureBootRolloutStatus.ps1 -ReportBasePath "C:\SecureBootReports"สถานะควรแสดงเป็น "เสร็จสมบูรณ์"
กลับไปเป็น "ขั้นตอนการปรับใช้ E2E (คู่มืออ้างอิงโดยสรุป)"
Files ของรัฐ
ผู้ประสานรักษาสถานะใน ReportBasePath\RolloutState\:
| ไฟล์ | คำอธิบาย |
|---|---|
| RolloutState.json | ประวัติคลื่น อุปกรณ์ที่กําหนดเป้าหมาย สถานะ |
| BlockedBuckets.json | บักเก็ตที่ต้องการการตรวจสอบ |
| DeviceHistory.json | การติดตามอุปกรณ์ตามชื่อโฮสต์ |
| Orchestrator_YYYYMMDD.log | บันทึกกิจกรรมประจําวัน |
กลับไปเป็น "ขั้นตอนการปรับใช้ E2E (คู่มืออ้างอิงโดยสรุป)"
การแก้ไขปัญหา
ในส่วนนี้
ผู้ประสานไม่คืบหน้า
ตรวจสอบงานที่กําหนดเวลาไว้
หมายเหตุ
Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"ตรวจสอบบันทึก
หมายเหตุ
Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50ตรวจสอบความสดใหม่ของข้อมูล JSON
หมายเหตุ
(Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count
กลุ่มที่ถูกบล็อก
รายการถูกบล็อก
หมายเหตุ
.\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBucketsตรวจสอบความสามารถในการเข้าถึงอุปกรณ์
ตรวจหาปัญหาเฟิร์มแวร์
ปลดบล็อกหลังจากการตรวจสอบ
GPO ไม่ใช้
ตรวจสอบ GPO ที่มีอยู่
หมายเหตุ
Get-GPO -Name "SecureBoot-Rollout-Wave*"ตรวจสอบการกรองความปลอดภัย
หมายเหตุ
Get-GPPermission -Name "GPO-Name" -Allตรวจสอบว่าคอมพิวเตอร์อยู่ในกลุ่มความปลอดภัย
นํา GPO บนเป้าหมายไปใช้
หมายเหตุ
gpupdate /force
เปลี่ยนล็อก
| เปลี่ยนวันที่ | เปลี่ยนคําอธิบาย |
|---|---|
| วันที่ 12 พฤษภาคม 2026 | ก่อนหน้านี้ แต่ละไฟล์สคริปต์ตัวอย่างได้รับการเผยแพร่เป็นบทความแต่ละรายการที่คุณจะคัดลอกและวางสคริปต์ เริ่มต้นด้วยการอัปเดต Windows ที่เผยแพร่ในวันที่ 12 พฤษภาคม 2026 และหลังจากนั้น สคริปต์ตัวอย่างจะอยู่ในโฟลเดอร์ %systemroot%\SecureBoot\ExampleRolloutScripts บนอุปกรณ์ของคุณ |