MyITGuy
11/22/2016 - 7:10 PM

PowerShell: Get group policy detail on policy and extension last policy time

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}