Peut Powershell Get-ChildProperty obtenir une liste des clés de registre comme REG QUERY peut le faire sans bruit?

Dans PowerShell 2.0 sur Win2008R2, si je veux obtenir le même résultat à partir d'une clé de registre que "REG QUERY" me donnerait, dans un format lisible, avec les valeurs d'une clé de registre, comme ceci:

reg query hkcu\Software\Microsoft\CharMap

HKEY_CURRENT_USER\Software\Microsoft\CharMap
    Advanced    REG_DWORD    0x0
    CodePage    REG_SZ       Unicode
    Font        REG_SZ       Arial

Comment pourrais-je le faire avec PowerShell? Le comportement de PowerShell mystifie moi, encore une fois.

Get-ItemProperty exemple:

Get-ItemProperty HKCU:\Software\Microsoft\CharMap


PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\Microsoft\CharMap
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\Microsoft
PSChildName  : CharMap
PSDrive      : HKCU
PSProvider   : Microsoft.PowerShell.Core\Registry
Advanced     : 0
CodePage     : Unicode
Font         : Arial

Dans mon artificiel exemple ci-dessus, je veux voir la section "Avancé", "CodePage" et "Police", mais pas du tout de la PowerShell de métadonnées (nom commençant en PS). Malheureusement, le filtrage sur le nom "PS" ne fonctionnerait pas pour moi, parce que je ne suis pas VRAIMENT d'essayer de lire le MS Windows Caractère paramètres de la Carte, j'ai simplement choisi comme une clé de registre que probablement tout le monde avec Windows, donc tout le monde peut voir comment tout à fait différente de l'expérience de l'utilisation de PowerShell est à chercher dans le registre, par rapport à-dire la REG.EXE programme. Il y a des raisons pourquoi quelqu'un pourrait vouloir, pour obtenir les valeurs de registre à partir d'une clé de registre sans récupérer les métadonnées, et quelqu'un outils d'écriture dans PowerShell souhaitez faire cette tâche simple.

Je voudrais une sortie semblable à REG QUERY mais toujours en natif PowerShell format, et pas seulement aplati texte. J'ai googlé et recherché partout et ne semblent pas le comprendre.

J'aimerais être capable par exemple de faire:

  $all = GetRealRegistryKeysFrom(  HKCU:\Software\Microsoft\CharMap )
  for ($item in $all) { ... }

Mise à jour à l'Aide de la fonction ci-dessous, fonctionne très bien....

Exemple Get-RegistryKeyPropertiesAndValues -path HKCU:\Software\.....

Liées, mais qui nécessite PS-RemoteRegistry. Je me demande si cela peut être fait sans ce module supplémentaire. : stackoverflow.com/questions/11304608/...
Vous pouvez également jeter un oeil à cette réponse: stackoverflow.com/questions/17837876/... à l'aide de PSCustomObject est beaucoup plus rapide sur ma machine que la réponse ci-dessous.

OriginalL'auteur Warren P | 2012-11-12