ตัวอย่างคู่มือระบบอัตโนมัติการบูตแบบปลอดภัย E2E

นำไปใช้กับ
Windows 10, version 1607, all editions Win 10 Ent LTSB 2016 Win 10 IoT Ent LTSB 2016 Windows 10, version 1809, all editions Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 ESU Windows 10 Enterprise LTSC 2021 Windows 10 IoT Enterprise LTSC 2021 Windows 11 version 23H2, all editions Windows 11 version 24H2, all editions Windows 11 version 25H2, all editions Windows 11 version 26H1, all editions Windows Server 2016 Windows Server 2019 Windows Server 2022 Windows Server, version 23H2 Windows Server 2025

หมายเหตุ

วันที่เผยแพร่ต้นฉบับ: วันที่ 16 มีนาคม 2569
อัปเดตล่าสุด: วันที่ 12 พฤษภาคม 2026
KB ID: 5084567

ในบทความนี้

ภาพรวม

คู่มือนี้อธิบายระบบการปรับใช้อัตโนมัติสําหรับการอัปเดตใบรับรอง 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 มีให้ในอุปกรณ์ของคุณได้
  • Microsoft Corporation KEK 2K CA 2023
  • Windows UEFI CA 2023
  • Microsoft UEFI CA 2023
  • Microsoft Option UEFI ROM CA 2023

การอ้างอิง: API Windows Configuration System (WinCS) สําหรับการบูตแบบปลอดภัย

กลับไป "ข้อมูลอ้างอิงการตั้งค่าใบรับรอง Updates"

กลับสู่ด้านบน

สถาปัตยกรรม

เวิร์กโฟลว์สถาปัตยกรรม

กลับสู่ด้านบน

ขั้นที่ 1: การตรวจสอบและตรวจสอบสถานะในระดับองค์กร

ในส่วนนี้

สคริปต์ที่จําเป็นสําหรับเฟส 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

ตัวอย่างสคริปต์การเก็บรวบรวมข้อมูลสินค้าคงคลัง 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: Running
    • ROLLOUT PROGRESS

    สถานะ: InProgress
    คลื่นปัจจุบัน: 5
    เป้าหมายทั้งหมด: 1250
    อัปเดตทั้งหมด: 847

    • Progress: [█████████████████████░░░░░░░░░░░░░░░░░░░] 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 (คู่มืออ้างอิงโดยสรุป)"

กลับสู่ด้านบน

การแก้ไขปัญหา

ในส่วนนี้

ผู้ประสานไม่คืบหน้า

  1. ตรวจสอบงานที่กําหนดเวลาไว้

    หมายเหตุ

    Get-ScheduledTask -TaskName "SecureBoot-Rollout-Orchestrator"

  2. ตรวจสอบบันทึก

    หมายเหตุ

    Get-Content "C:\SecureBootReports\RolloutState\Orchestrator_*.log" -Tail 50

  3. ตรวจสอบความสดใหม่ของข้อมูล JSON

    หมายเหตุ

    (Get-ChildItem "\\server\SecureBootData$" -Filter "*.json" | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) }).Count

กลับไปที่ "การแก้ไขปัญหา"

กลุ่มที่ถูกบล็อก

  1. รายการถูกบล็อก

    หมายเหตุ

    .\Start-SecureBootRolloutOrchestrator.ps1 -ReportBasePath "C:\SecureBootReports" -ListBlockedBuckets

  2. ตรวจสอบความสามารถในการเข้าถึงอุปกรณ์

  3. ตรวจหาปัญหาเฟิร์มแวร์

  4. ปลดบล็อกหลังจากการตรวจสอบ

กลับไปที่ "การแก้ไขปัญหา"

GPO ไม่ใช้

  1. ตรวจสอบ GPO ที่มีอยู่

    หมายเหตุ

    Get-GPO -Name "SecureBoot-Rollout-Wave*"

  2. ตรวจสอบการกรองความปลอดภัย

    หมายเหตุ

    Get-GPPermission -Name "GPO-Name" -All

  3. ตรวจสอบว่าคอมพิวเตอร์อยู่ในกลุ่มความปลอดภัย

  4. นํา GPO บนเป้าหมายไปใช้

    หมายเหตุ

    gpupdate /force

กลับไปที่ "การแก้ไขปัญหา"

กลับสู่ด้านบน

เปลี่ยนล็อก

เปลี่ยนวันที่ เปลี่ยนคําอธิบาย
วันที่ 12 พฤษภาคม 2026 ก่อนหน้านี้ แต่ละไฟล์สคริปต์ตัวอย่างได้รับการเผยแพร่เป็นบทความแต่ละรายการที่คุณจะคัดลอกและวางสคริปต์ เริ่มต้นด้วยการอัปเดต Windows ที่เผยแพร่ในวันที่ 12 พฤษภาคม 2026 และหลังจากนั้น สคริปต์ตัวอย่างจะอยู่ในโฟลเดอร์ %systemroot%\SecureBoot\ExampleRolloutScripts บนอุปกรณ์ของคุณ