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.stig.windows11:def:253498
# The "Impersonate a client after authentication" user right must only be assigned to Administrators, Service, Local Service, and Network Service.
# Per-module read mechanism curated from static teardown of DISA's SCC tool
# (SCAP Compliance Checker) -- see the SCC Automation Reference above.
# Impersonate a client after authentication - Administrators, LOCAL SERVICE, NETWORK SERVICE, SERVICE, RESTRICTED SERVICES\PrintSpoolerService
# userright_object (userright_test)
function test_1 {
return ((($__tmp = "$env:TEMP\scc_userrights_$([guid]::NewGuid().Guid).cfg"; secedit /export /cfg $__tmp /areas USER_RIGHTS /quiet | Out-Null; $__m = Select-String -Path $__tmp -Pattern '^SeImpersonatePrivilege\s*=\s*(.*)$'; Remove-Item $__tmp -ErrorAction SilentlyContinue; if ($__m -and $__m.Matches[0].Groups[1].Value.Trim().Length -gt 0) { (($__m.Matches[0].Groups[1].Value -split ',') | ForEach-Object { $__sid = $_.Trim().TrimStart('*'); try { (New-Object System.Security.Principal.SecurityIdentifier($__sid)).Translate([System.Security.Principal.NTAccount]).Value -replace '^[^\\]*\\', '' } catch { $__sid } }) -join ',' } else { '' }) -eq '') -or (($__tmp = "$env:TEMP\scc_userrights_$([guid]::NewGuid().Guid).cfg"; secedit /export /cfg $__tmp /areas USER_RIGHTS /quiet | Out-Null; $__m = Select-String -Path $__tmp -Pattern '^SeImpersonatePrivilege\s*=\s*(.*)$'; Remove-Item $__tmp -ErrorAction SilentlyContinue; if ($__m -and $__m.Matches[0].Groups[1].Value.Trim().Length -gt 0) { (($__m.Matches[0].Groups[1].Value -split ',') | ForEach-Object { $__sid = $_.Trim().TrimStart('*'); try { (New-Object System.Security.Principal.SecurityIdentifier($__sid)).Translate([System.Security.Principal.NTAccount]).Value -replace '^[^\\]*\\', '' } catch { $__sid } }) -join ',' } else { '' }) -eq 'Administrators') -or (($__tmp = "$env:TEMP\scc_userrights_$([guid]::NewGuid().Guid).cfg"; secedit /export /cfg $__tmp /areas USER_RIGHTS /quiet | Out-Null; $__m = Select-String -Path $__tmp -Pattern '^SeImpersonatePrivilege\s*=\s*(.*)$'; Remove-Item $__tmp -ErrorAction SilentlyContinue; if ($__m -and $__m.Matches[0].Groups[1].Value.Trim().Length -gt 0) { (($__m.Matches[0].Groups[1].Value -split ',') | ForEach-Object { $__sid = $_.Trim().TrimStart('*'); try { (New-Object System.Security.Principal.SecurityIdentifier($__sid)).Translate([System.Security.Principal.NTAccount]).Value -replace '^[^\\]*\\', '' } catch { $__sid } }) -join ',' } else { '' }) -eq 'LOCAL SERVICE') -or (($__tmp = "$env:TEMP\scc_userrights_$([guid]::NewGuid().Guid).cfg"; secedit /export /cfg $__tmp /areas USER_RIGHTS /quiet | Out-Null; $__m = Select-String -Path $__tmp -Pattern '^SeImpersonatePrivilege\s*=\s*(.*)$'; Remove-Item $__tmp -ErrorAction SilentlyContinue; if ($__m -and $__m.Matches[0].Groups[1].Value.Trim().Length -gt 0) { (($__m.Matches[0].Groups[1].Value -split ',') | ForEach-Object { $__sid = $_.Trim().TrimStart('*'); try { (New-Object System.Security.Principal.SecurityIdentifier($__sid)).Translate([System.Security.Principal.NTAccount]).Value -replace '^[^\\]*\\', '' } catch { $__sid } }) -join ',' } else { '' }) -eq 'NETWORK SERVICE') -or (($__tmp = "$env:TEMP\scc_userrights_$([guid]::NewGuid().Guid).cfg"; secedit /export /cfg $__tmp /areas USER_RIGHTS /quiet | Out-Null; $__m = Select-String -Path $__tmp -Pattern '^SeImpersonatePrivilege\s*=\s*(.*)$'; Remove-Item $__tmp -ErrorAction SilentlyContinue; if ($__m -and $__m.Matches[0].Groups[1].Value.Trim().Length -gt 0) { (($__m.Matches[0].Groups[1].Value -split ',') | ForEach-Object { $__sid = $_.Trim().TrimStart('*'); try { (New-Object System.Security.Principal.SecurityIdentifier($__sid)).Translate([System.Security.Principal.NTAccount]).Value -replace '^[^\\]*\\', '' } catch { $__sid } }) -join ',' } else { '' }) -eq 'SERVICE') -or (($__tmp = "$env:TEMP\scc_userrights_$([guid]::NewGuid().Guid).cfg"; secedit /export /cfg $__tmp /areas USER_RIGHTS /quiet | Out-Null; $__m = Select-String -Path $__tmp -Pattern '^SeImpersonatePrivilege\s*=\s*(.*)$'; Remove-Item $__tmp -ErrorAction SilentlyContinue; if ($__m -and $__m.Matches[0].Groups[1].Value.Trim().Length -gt 0) { (($__m.Matches[0].Groups[1].Value -split ',') | ForEach-Object { $__sid = $_.Trim().TrimStart('*'); try { (New-Object System.Security.Principal.SecurityIdentifier($__sid)).Translate([System.Security.Principal.NTAccount]).Value -replace '^[^\\]*\\', '' } catch { $__sid } }) -join ',' } else { '' }) -eq 'RESTRICTED SERVICES\PrintSpoolerService'))
}
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_11 target this check assesses.
# OVAL Definition: oval:mil.disa.stig.windows11:def:253498
$userRights = Get-CimInstance -ClassName Win32_UserRightAssingment -Filter "UserRight='SeImpersonateName'"
$expectedGroups = "Administrators", "LOCAL SERVICE", "NETWORK SERVICE", "SERVICE", "RESTRICTED SERVICES\PrintSpoolerService"
$compliant = $userRights | ForEach-Object { $expectedGroups -contains $_.__SERVER }
if ($compliant) { Write-Output "PASS"; Exit 0 } else { Write-Output "FAIL"; Exit 1 }