SIDHistory
Summary
Description
Identification
PowerShell
function Find-SidHistory {
[CmdletBinding()]
param ( [string]$Target = $null,[string]$OutputPath = ".\SIDHistory.csv")
Import-Module ActiveDirectory -ErrorAction Stop
try {
if ($Target) {
Write-Host "Retrieving sidHistory for object: $Target"
$objects = Get-ADObject -Identity $Target -Properties Name, sidHistory
}
else {
Write-Host "Retrieving all objects with sidHistory..."
$objects = Get-ADObject -Filter { sidHistory -like "*" } -Properties Name, sidHistory
}
if ($objects) {
$results = foreach ($obj in $objects) {
if ($obj.sidHistory) {
foreach ($sid in $obj.sidHistory) {
$resolved = $null
try {
$resolved = (New-Object System.Security.Principal.SecurityIdentifier($sid)).Translate([System.Security.Principal.NTAccount]).Value
} catch {
$resolved = "Unresolved"
}
[PSCustomObject]@{
ObjectName = $obj.Name
SIDHistory = $sid
ResolvedName = $resolved
}
}
}
else {
[PSCustomObject]@{
ObjectName = $obj.Name
SIDHistory = $null
ResolvedName = $null
}
}
}
$results | Export-Csv -Path $OutputPath -NoTypeInformation -Encoding UTF8
Write-Host "Results exported to $OutputPath"
}else { Write-Warning "No objects found with sidHistory." }
}
catch { Write-Error "An error occurred: $_" }
}Active Directory Users and Computers

Exploitation
Windows

Linux

Mitigation

Detection
Event ID
Description
Fields/Attributes
References
References
Last updated
Was this helpful?