The reconstructed evaluation script behind this rule's OVAL check(s) — every module a compound check combines, with this rule's own concrete values and DISA's SCC tool's real per-module mechanism curated from static teardown of SCC releases.
# Windows PowerShell
# Reconstructed from oval:mil.disa.fso.windows:def:4491
# The default Autorun behavior must be configured to prevent Autorun commands.
# Per-module read mechanism curated from static teardown of DISA's SCC tool
# (SCAP Compliance Checker) -- see the SCC Automation Reference above.
# Verifies 'Default behavior for AutoRun' is set to 'Enabled:Do not execute any autorun commands'
# registry_object (registry_test)
function test_1 {
return (((@{String='reg_sz';ExpandString='reg_expand_sz';Binary='reg_binary';DWord='reg_dword';MultiString='reg_multi_sz';QWord='reg_qword';None='reg_none'}[(Get-Item -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer').GetValueKind('NoAutorun').ToString()]) -eq 'reg_dword') -and (((Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer' -Name 'NoAutorun' -ErrorAction SilentlyContinue) | Select-Object -ExpandProperty 'NoAutorun') -eq 1))
}
if (test_1) {
Write-Output "PASS"
} else {
Write-Output "FAIL"
} Assessment Script Powered by AISyntax-verified
A standalone PowerShell script to assess this control automatically. Review before running it in your environment.
Syntax-checked as valid PowerShell. Not executed here — running it for real needs the actual ms_windows_2012_and_2012_r2_dc target this check assesses.
# OVAL Definition: oval:mil.disa.fso.windows:def:4491
$NoAutorunPath = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer"
$NoAutorunValue = "NoAutorun"
$expectedValue = 1
if (Test-Path $NoAutorunPath) {
$NoAutorunReg = Get-ItemProperty -Path $NoAutorunPath -Name $NoAutorunValue -ErrorAction SilentlyContinue
if ($NoAutorunReg -and $NoAutorunReg.$NoAutorunValue -eq $expectedValue) {
Write-Output "PASS"; exit 0
}
}
Write-Output "FAIL"; exit 1