Question
recherche d'une valeur dans la base de registre
- maiden65
- Auteur du sujet
- Visiteur
-
il y a 13 ans 3 semaines #14718
par maiden65
recherche d'une valeur dans la base de registre a été créé 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
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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 3 semaines #14722
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:recherche d'une valeur dans la base de registre
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 > 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 > Get-Alias cd
CommandType Name ModuleName
----
Alias cd -> 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 > 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:\> 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 > 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 > 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 > cd hkcr:
PS HKCR:\>[/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
Tu peux retrouver la liste des différents fournisseurs PowerShell (PS Provider) disponibles par défaut de cette façon :
[code:1]PS > 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 > Get-Alias cd
CommandType Name ModuleName
----
Alias cd -> 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 > 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:\> 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 > 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 > 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 > cd hkcr:
PS HKCR:\>[/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
-
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 >
[/code:1]
or quand je fait une recherche via regedit ,
je trouve une occurence quand je recherche depuis HKLM/SOFTWARE (cf PJ)
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 >
[/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.
- Matthew BETTON
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 13 ans 3 semaines #14725
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:recherche d'une valeur dans la base de registre
Si je cherche \"*pad*\", j'obtiens bien un résultat :
[code:1]
PS > Get-ChildItem -Recurse -Path 'HKLM:\SOFTWARE\Classes\AppID' | %{ $_.GetValue($_.GetValueNames()
) } | ? { $_ -like '*pad*' }
Wordpad
[/code:1]
Mais rien pour \"*delta*\" 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] ...
Peux tu STP poster la PJ ?
Via ton code, tu cherches une donnée de valeur telle que \"*delta*\" 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
[code:1]
PS > Get-ChildItem -Recurse -Path 'HKLM:\SOFTWARE\Classes\AppID' | %{ $_.GetValue($_.GetValueNames()
) } | ? { $_ -like '*pad*' }
Wordpad
[/code:1]
Mais rien pour \"*delta*\" 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 \"*delta*\" 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
-
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
la voila
Connexion ou Créer un compte pour participer à la conversation.
- maiden65
- Auteur du sujet
- 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
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
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- recherche d'une valeur dans la base de registre