PowerShell: Get group policy detail on policy and extension last policy time
Get-ChildItem -Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\Status\GPExtensions" | % {
$GPOExtension = $_
$GPOExtensionGuid = $GPOExtension.PSChildName
$GPOLastPolicyTime = ([datetime]'1/1/1980').AddMinutes((Get-ItemProperty -Path $_.PSPath).LastPolicyTime).ToLocalTime()
Get-ChildItem -Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History\$($GPOExtensionGuid)\*" | % {
$GPOPolicyGuid = (Get-ItemProperty -Path $_.PSPath -Name GPOName).GPOName
$GPOPolicyName = (Get-ItemProperty -Path $_.PSPath -Name DisplayName).DisplayName
New-Object -TypeName PSObject -Property @{
GPOExtensionGuid = $GPOExtensionGuid
PolicyGuid = $GPOPolicyGuid
PolicyName = $GPOPolicyName
LastPolicyTime = $GPOLastPolicyTime
}
}
} | Sort -Property @{Expression = {$_.LastPolicyTime}; Ascending = $true}, @{Expression = {$_.PolicyName}; Ascending = $true}