Question recherche d'une valeur dans la base de registre

  • maiden65
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 13 ans 3 semaines #14718 par maiden65
Bonjour,

Voici mon problème.

Je recherche une valeur de clé dans la base de registre.
En manuel on ouvre la base de registre CTRL-F et on trouve la 1ere valeur etc...

Je voudrais faire la liste des clé contenant cette valeur et le mettre dans un fichier qui serait utilisable pour des vérif ou des modif/suppression

Dans mon exemple j'ai une valeur trouvée dans HKCR mais impossible de faire par exemple
get-itemproperty -path registry::\"HKCR:\\"

autre exemple[code:1]
PS HKLM:\> Get-ChildItem -Recurse -Path 'HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID' | %{ $_.GetValue($_.GetValueNames())
} | ? { $_ -like '*delta*' }
[/code:1]
ne trouve rien...
or dans le regedit je trouve
[code:1]
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{C26644C4-2A12-4CA6-8F2E-0EDE6CF018F3}\Instl\Data\hp_url
[/code:1]
avec la valeur
www2.delta-search.com/?affID=121562&...rId=B0B0002421280F8A

Je ne comprend pas comment je peux trouver une valeur de clé avec regedit et pas en ordre powershell

Merci d'avance pour votre aide<br><br>Message édité par: maiden65, à: 26/04/13 12:11

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14722 par Matthew BETTON
Bonjour maiden65,

Tu peux retrouver la liste des différents fournisseurs PowerShell (PS Provider) disponibles par défaut de cette façon :

[code:1]PS &gt; Get-PSProvider

Name Capabilities Drives
----

Alias ShouldProcess {Alias}
Environment ShouldProcess {Env}
FileSystem Filter, ShouldProcess, Credentials {C, D, E, F...}
Function ShouldProcess {Function}
Registry ShouldProcess, Transactions {HKLM, HKCU}
Variable ShouldProcess {Variable}
[/code:1]

Pour ce qui concerne le registre, voir les lecteurs 'HKLM' et 'HKCU'.

Pour y accéder, comme pour tout fournisseur :

[code:1]Set-Location hklm:[/code:1]

ou

[code:1]cd hklm:[/code:1]

Puisque 'cd' est l'alias de 'Set-Location' :

[code:1]PS &gt; Get-Alias cd

CommandType Name ModuleName
----
Alias cd -&gt; Set-Location
[/code:1]

Une petite remarque au passagep our la simple commande :

[code:1]d:[/code:1]

Elle n'a plus rien à voir avec la fameuse commande DOS qui permet de changer de volume... il s'agit d'une fonction qui en réalité effectue un 'Set-Location' :

[code:1]PS &gt; Get-Command c: | select *


HelpUri :
ScriptBlock : Set-Location C:
CmdletBinding : False
DefaultParameterSet :
Definition : Set-Location C:
Options : None
Description :
Verb :
Noun :
HelpFile : System.Management.Automation.dll-Help.xml
OutputType : {}
Name : C:
CommandType : Function
Visibility : Public
ModuleName :
Module :
RemotingCapability : PowerShell
Parameters : {}
ParameterSets : {}[/code:1]

Pour en revenir à ta question de départ, essayes donc plutôt :

[code:1]PS HKLM:\&gt; Get-ChildItem -Recurse -Path 'HKLM:\SOFTWARE\Classes\AppID' | %{ $_.GetValue($_.GetValueNames())
} | ? { $_ -like '*delta*' }
[/code:1]

Ta commande me paraît correcte... Bien que je n'ai pas de valeur contenant '*delta*' sur mon poste actuel, je parviens à la faire fonctionner en modifiant la recherche ;)

Enfin, au cas où tu ne le saurais pas, HKCR (HKEY_Classes_Root) pointe effectivement sur [code:1]'HKLM:\SOFTWARE\Classes'[/code:1] . C'est la raison pour laquelle tu ne trouves pas ce fournisseur par défaut. Toutefois, il est possible de le créer :

[code:1]PS &gt; New-PSDrive -Name HKCR -PSProvider Registry -Root HKLM:\software\classes -Description 'Classes
Root'

Name Used (GB«») Free (GB«») Provider Root CurrentLocation
----


----
HKCR Registry HKEY_LOCAL_MACHINE\software\classes


PS &gt; Get-PSProvider

Name Capabilities Drives
----

Alias ShouldProcess {Alias}
Environment ShouldProcess {Env}
FileSystem Filter, ShouldProcess, Credentials {C, D, E, F...}
Function ShouldProcess {Function}
Registry ShouldProcess, Transactions {HKLM, HKCU, HKCR}
Variable ShouldProcess {Variable}
Certificate ShouldProcess {Cert}
WSMan Credentials {WSMan}


PS &gt; cd hkcr:
PS HKCR:\&gt;[/code:1]

@ +

Matthew

Message édité par: Matthew BETTON, à: 28/04/13 13:43<br><br>Message édité par: Matthew BETTON, à: 28/04/13 13:45

Connexion ou Créer un compte pour participer à la conversation.

  • maiden65
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 13 ans 3 semaines #14724 par maiden65
Réponse de maiden65 sur le sujet Re:recherche d'une valeur dans la base de registre
Merci pour toutes ces infos...

Pour la commande passée je n'ai aucun résultat.
[code:1]

Get-ChildItem -Recurse -Path 'HKLM:\SOFTWARE\Classes\AppID' | %{ $_.GetValue($_.GetValueNames()) } | ? { $_ -like '*delta*' }
PS &gt;
[/code:1]

or quand je fait une recherche via regedit ,
je trouve une occurence quand je recherche depuis HKLM/SOFTWARE (cf PJ)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 13 ans 3 semaines #14725 par Matthew BETTON
Si je cherche \&quot;*pad*\&quot;, j'obtiens bien un résultat :

[code:1]
PS &gt; Get-ChildItem -Recurse -Path 'HKLM:\SOFTWARE\Classes\AppID' | %{ $_.GetValue($_.GetValueNames()
) } | ? { $_ -like '*pad*' }

Wordpad
[/code:1]

Mais rien pour \&quot;*delta*\&quot; sous [code:1]'HKLM:\SOFTWARE\Classes\AppID'[/code:1]. Même chose avec l'éditeur (regedit).

Je trouve une donnée de valeur 'delta' sous [code:1]'HKLM:\SOFTWARE\Classes\Drive'[/code:1] ...

je trouve une occurence quand je recherche depuis HKLM/SOFTWARE (cf PJ)


Peux tu STP poster la PJ ?

Via ton code, tu cherches une donnée de valeur telle que \&quot;*delta*\&quot; sous [code:1]'HKLM:\SOFTWARE\Classes\AppID'[/code:1].

Est-ce bien ce que tu cherches ? (dans ta dernière phrase tu dis 'HKLM\Software' et de plus, tu intitules ce post 'recherche d'une valeur...', ce que tu ne fais pas. Tu cherches via ton code une donnée de valeur).

Sinon, une possibilité peut être un souci d'autorisations en lecture sur les clefs concernées. As tu testé ton code dans une console PowerShell ouverte avec des droits spécifiques (Admin ou élévation, sous Windows 7).<br><br>Message édité par: Matthew BETTON, à: 28/04/13 21:50

Connexion ou Créer un compte pour participer à la conversation.

  • maiden65
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 13 ans 3 semaines #14726 par maiden65
Réponse de maiden65 sur le sujet Re:recherche d'une valeur dans la base de registre
oups je me suis trompé dans la mise en PJ

la voila

Connexion ou Créer un compte pour participer à la conversation.

  • maiden65
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 13 ans 3 semaines #14727 par maiden65
Réponse de maiden65 sur le sujet Re:recherche d'une valeur dans la base de registre
pas de chance ..
planté en cours de transfert

La pièce jointe image_registre.doc est absente ou indisponible

Pièces jointes :

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.044 secondes
Propulsé par Kunena