Auteur de questions
Recherche dans les registres & modification de la valeur

Question
-
Toutes les réponses
-
-
-
-
-
-
Elle n'est pas native, il faut la télécharger comme indiqué en début de page de la page cité : http://windows.developpez.com/telecharger/detail/id/72/Replace-String
En revanche je ne l'ai pas testé sous Powershell v3.
Beatus, qui prodest, quibus potest.
- Modifié Dardenne LaurentMVP, Moderator mercredi 13 février 2013 12:12 Coquilles
-
Salut,
Je veux recupérer la donnée d'un d'une valeur d'une clé de registre, c'est une chaine de caracteres. voici mon script :
Le probleme de ce script, c'est qu'il cherche seulement le mot clé qui ent que que clé de registre ou le nom de la valeur et
je n'arrive pas a faire une recherhe de la donnée de la valeur. J'ai essayé avec Get-Itemproperty mais en vain.
une fois que la valeur est trouvée, je pourrais la modifier aisement.
$ErrorActionPreference="SilentlyContinue" do { $chemin = read-host "Entrez un point de départ" $valide = test-path $chemin } until ($valide) $mot = read-host "Entrez un mot-clé" foreach ($key in get-childitem $chemin -recurse) { if ($key.name -like "*$mot*") { write-host $key.Name } foreach ($valeur in $key.getvaluenames()) { if ($valeur -like "*$mot*") { write-host " -> $valeur" } } }
- Modifié Hdey64 jeudi 14 février 2013 15:39
-
Dans l'idée :
$mot_recherche = "TNS_ADMIN"
$valeur_recherchee="prod\Oracle\SQLNet"
foreach ($key in get-childitem -recurse -Path 'HKLM:\SOFTWARE\ORACLE' -ea SilentlyContinue)
{
foreach ($nomcle in $key.getvaluenames())
{
if ($nomcle -like "*$mot_recherche*")
{
write-host "« $mot_recherche » trouvé dans « $nomcle »"
$valeur_cle=Get-ItemProperty -Path $key.name -Name $vc_cle_cherchee -ea SilentlyContinue
write-host Valeur clé=$valeur_cle
if ($valeur_cle -like "*$valeur_recherchee*")
{
write-host "|_ « $valeur_recherchee » trouvée dans « $valeur_cle »"
}
}
}
}
Le script ci-dessous est un peu différent : il recherche dans HKLM:\SOFTWARE\Wow6432Node\ORACLE et HKLM:\SOFTWARE\ORACLE les clés TNS_ADMIN et en modifie les valeurs (en faisant un backup de l'ancienne valeur, si c'est demandé par l'utilisateur)
Write-Host Script powershell qui modifie les clés TNS_ADMIN des sections HKLM:\SOFTWARE\Wow6432Node\ORACLE et HKLM:\SOFTWARE\ORACLE de la base de registres
Write-Host Au 1er lancement, répondez éventuellement « o » à la demande de sauvegarde
Write-Host SI VOUS LE RELANCEZ, NE REPONDEZ SURTOUT PLUS « o », VOUS PERDRIEZ VOTRE 1ERE SAUVEGARDE
$vc_cle_cherchee="TNS_ADMIN"
$vc_newval="\\domaine\serveur\Oracle\SQLNet"
$vc_perform_backup = read-host "Entrez « o » pour effectuer une sauvegarde des valeurs de clés, rien pour ne pas faire de sauvegarde:"
Function Search-and-Replace
{
Get-ChildItem -Recurse -Path $vc_ruche -ea SilentlyContinue | foreach {
# Si dans la section de la base qu'on est en train de parcourir, il n'y a pas de clé "TNS_ADMIN" (=vc_cle_cherchee),
# le Get-ItemProperty qui suit va sortir une erreur. Pour l'éviter, on utilise l'option "-ea" (ErrorAction)
$path=$_.PsPath
$CurrentVal = (Get-ItemProperty -Path $_.PsPath -Name $vc_cle_cherchee -ea SilentlyContinue)
if ($CurrentVal )
{
# Afficher l'objet trouvé :
# $CurrentVal
# Mémoriser dans "oldval" la valeur courante de l'entrée TNS_ADMIN (=vc_cle_cherchee)
$oldval=$CurrentVal.$vc_cle_cherchee
write-Host "Path de la clé $vc_cle_cherchee trouvée=$path"
write-Host "Valeur courante ="$oldval
if ($vc_perform_backup -eq "o")
{
Write-Host "|_ On créé une clé BAK_$vc_cle_cherchee dans $path avec comme valeur $oldval"
# NB : il existe aussi une commande Copy-Item pour copier les clés
set-itemproperty -path $path -name BAK_$vc_cle_cherchee -value $oldval
}
# Faire un Set-ItemProperty pour modifier la valeur
Write-Host "On positionne la nouvelle valeur pour la clé $path\$vc_cle_cherchee"
set-itemproperty -path $path -name $vc_cle_cherchee -value $vc_newval
}
}
}
# Main$vc_ruche="HKLM:\SOFTWARE\Wow6432Node\ORACLE"
Search-and-Replace
$vc_ruche="HKLM:\SOFTWARE\ORACLE"
Search-and-Replace
- Modifié Frédéric CASTELAIN jeudi 31 janvier 2019 15:49