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\.....
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
Vous devez vous connecter pour publier un commentaire.
C'est un truc:
Le problème est que lorsqu'un bien démarrer avec
PS
. De travail sur ce code, vous pouvez élaborer pour exclure ces:... Un par un à l'intérieur de la clause where. Ou simplement essayer d'utiliser
Il y a un script pour faire ce que vous avez besoin.
mise à jour reproduit script ici:
J'ai déménagé une copie de cette fonction de script dans le corps parce que c'est privilégiée ici. Qui fonctionne très bien.
J'ai posté une question+réponse avec un script qui pourrait être plus rapide ici: stackoverflow.com/questions/17837876/...
Génial script! Sauvé mon cul après je construire un pré-lancement reg-cleaup script sur le dessus de PSRemoteRegistry (qui est très sympa) et ne pouvait pas déployer pour que tous les utilisateurs dans la batterie de serveurs Citrix. Leçon apprise: le Mieux est de coller avec de la vanille PS.
OriginalL'auteur CB.
Code suivant va énumérer toutes les valeurs de certaines clés de Registre, les trie et sera de retour nom de la valeur : des paires de valeurs séparées par des deux-points (:):
Comme ceci:
DbgJITDebugLaunchSetting : 16
DbgManagedDebugger : "C:\Windows\system32\vsjitdebugger.exe" PID %d APPDOM %d EXTEXT "%s" EVTHDL %d
InstallRoot : C:\Windows\Microsoft.NET\Framework\
OriginalL'auteur Harry Martyrossian
Oh, non ...
Je ne comprends pas ce qu'ils signifient. Les résultats sont identiques.
OriginalL'auteur STTR