Skip to main content

Windows Secure Boot Audit

Summary

This Script fetches the status of key certificate and configurations that will be needed before the current secure boot certificates expire.

Sample Run

Image

Dependencies

Task Creation

Script Details

Step 1

Navigate to AutomationTasks
step1

Step 2

Create a new Script Editor style task by choosing the Script Editor option from the Add dropdown menu
step2

The New Script page will appear on clicking the Script Editor button:
step3

Step 3

Fill in the following details in the Description section:

  • Name: Windows Secure Boot Audit
  • Description: Fetches the status of key certificate and configurations that will be needed before the current secure boot certificates expire.
  • Category: Custom

Image

Script Editor

Click the Add Row button in the Script Editor section to start creating the script
AddRow

A blank function will appear:
BlankFunction

Row 1 Function: PowerShell Script

Search and select the PowerShell Script function.

PowerShell Function Selected

The following function will pop up on the screen:
PowerShell Function Example

Paste in the following PowerShell script and set the Expected time of script execution in seconds to 300 seconds. Click the Save button.


try { if (Confirm-SecureBootUEFI) { "Enabled" } else { "Disabled" } } catch { "Unsupported or Disabled" }

Image

Row 2 Function: Script Log

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Script Log function.
Script Log Search

In the script log message, simply type %output% and click the Save button.
Script Log Save

Row 3 Function: Set Custom Field

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Set Custom Field function.
Set Custom Field Search

The following function will pop up on the screen:
Set Custom Field Example

  • Search and select the Computer-Level Custom Field Windows Secure Boot from the Custom Field dropdown menu.
  • Set %Output% in the Value field.
  • Click the Save button.

Set Custom Field Save 1

Set Custom Field Save 2

Row 4 Function: PowerShell Script

Search and select the PowerShell Script function.

PowerShell Function Selected

The following function will pop up on the screen:
PowerShell Function Example

Paste in the following PowerShell script and set the Expected time of script execution in seconds to 300 seconds. Click the Save button.


$result = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\DataCollection" -Name "AllowTelemetry" -ErrorAction SilentlyContinue).AllowTelemetry

if ($result -in 1,2,3) {
"Enabled"
} else {
"Disabled"
}

Image

Row 5 Function: Script Log

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Script Log function.
Script Log Search

In the script log message, simply type %output% and click the Save button.
Script Log Save

Row 6 Function: Set Custom Field

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Set Custom Field function.
Set Custom Field Search

The following function will pop up on the screen:
Set Custom Field Example

  • Search and select the Computer-Level Custom Field Windows Telemetry from the Custom Field dropdown menu.
  • Set %Output% in the Value field.
  • Click the Save button.

Set Custom Field Save 1

Set Custom Field Save 2

Row 7 Function: PowerShell Script

Search and select the PowerShell Script function.

PowerShell Function Selected

The following function will pop up on the screen:
PowerShell Function Example

Paste in the following PowerShell script and set the Expected time of script execution in seconds to 300 seconds. Click the Save button.


$result = [System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match '(Windows|Microsoft) UEFI CA 2023'

if ($result) {
"Up to Date"
} else {
"Out of Date"
}

Image

Row 8 Function: Script Log

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Script Log function.
Script Log Search

In the script log message, simply type %output% and click the Save button.
Script Log Save

Row 9 Function: Set Custom Field

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Set Custom Field function.
Set Custom Field Search

The following function will pop up on the screen:
Set Custom Field Example

  • Search and select the Computer-Level Custom Field Windows DB Certificate from the Custom Field dropdown menu.
  • Set %Output% in the Value field.
  • Click the Save button.

Set Custom Field Save 1

Set Custom Field Save 2

Row 10 Function: PowerShell Script

Search and select the PowerShell Script function.

PowerShell Function Selected

The following function will pop up on the screen:
PowerShell Function Example

Paste in the following PowerShell script and set the Expected time of script execution in seconds to 300 seconds. Click the Save button.


$result = [System.Text.Encoding]::ASCII.GetString((Get-SecureBootUEFI KEK).bytes) -match 'Microsoft Corporation KEK 2K CA 2023'

if ($result) {
"Up to Date"
} else {
"Out of Date"
}

Image

Row 11 Function: Script Log

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Script Log function.
Script Log Search

In the script log message, simply type %output% and click the Save button.
Script Log Save

Row 12 Function: Set Custom Field

Add a new row by clicking the Add Row button.
Add Row

A blank function will appear.
Blank Function

Search and select the Set Custom Field function.
Set Custom Field Search

The following function will pop up on the screen:
Set Custom Field Example

  • Search and select the Computer-Level Custom Field Windows KEK Certificate from the Custom Field dropdown menu.
  • Set %Output% in the Value field.
  • Click the Save button.

Set Custom Field Save 1

Set Custom Field Save 2

Save Task

Click the Save button at the top-right corner of the screen to save the script.
SaveButton

Completed Task

Complete Task

Output

  • Custom fields
  • Script Output

Schedule Task

Task Details

  • Name: Windows Secure Boot Audit
  • Description: Fetches the status of key certificate and configurations that will be needed before the current secure boot certificates expire.
  • Category: Custom

Image

Schedule

  • Schedule Type: Schedule
  • Timezone: Local Machine Time
  • Start: <Current Date>
  • Trigger: Time At <Current Time>
  • Recurrence: Every 15 Days

Image

Targeted Resource

Device Group: Windows Machines

Image

Completed Scheduled Task

Image

Changelog

2026-03-23

  • Initial version of the document