Private/Get-ADPDRegistrySnapshot.ps1

function Get-ADPDRegistrySnapshot {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [string]$Path,

        [Parameter(Mandatory)]
        [string[]]$Name
    )

    $values = [ordered]@{}
    try {
        $item = Get-ItemProperty -Path $Path -ErrorAction Stop
        foreach ($propertyName in $Name) {
            $values[$propertyName] = $item.$propertyName
        }
    } catch {
        foreach ($propertyName in $Name) {
            $values[$propertyName] = $null
        }
    }

    [pscustomobject]$values
}