IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Trouver une valeur chaine sans connaitre le nom complet de la clé


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Monteur Vidéo...
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Monteur Vidéo...

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Points : 22
    Points
    22
    Par défaut Trouver une valeur chaine sans connaitre le nom complet de la clé
    Salut,

    Je n'arrive pas à trouver comment faire ça :
    J'ai une clé de registre qui change à chaque installation sur différents PC

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{72ba4971-68e9-4f32-bbb1-60df0641e54a}
    "DisplayName"="Mon Prog_TEST"
    Avec ça, je trouve bien la clé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REG Query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /se # /F "Mon Prog_TEST" /S
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{72ba4971-68e9-4f32-bbb1-60df0641e54a}
    DisplayName    REG_SZ    Mon Prog_TEST

    Cette clé {72ba4971-68e9-4f32-bbb1-60df0641e54a} change à chaque fois...

    A la prochaine installation, la clé devient par exemple :
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{787f5e46-eb9f-459e-9672-32ef72af8b95}

    J'aimerai que ça m'insère la nouvelle "clé" et "DisplayName=Mon Prog_TEST" en "DisplayName=Mon Prog_TEST 2" automatiquement dans mon .bat ou quelques choses comme ça…

    Ou en .vbs ou .ps1

    Merci

    @+

    *****
    Avec Powershell j’arrive à trouver la clé qui change :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $Data = "Mon Prog_TEST"
    $Keys = GCI "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" -Recurse
    Foreach($Key in $Keys){
        IF(($key.GetValueNames() | %{$key.GetValue($_)}) -match $Data){Write-Host $key}
    }
    Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"{edc924fe-c52a-4de5-83f3-accb11ce8135}
    Comment récupérer cette clé pour changer la valeur de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"{edc924fe-c52a-4de5-83f3-accb11ce8135}
    Set-ItemProperty "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Le reste de la clé ci-dessus" -Name "DisplayName" -Value "Mon Prog_TEST 2"
    Merci

    @+

  2. #2
    Membre à l'essai
    Homme Profil pro
    Monteur Vidéo...
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Monteur Vidéo...

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Salut,

    J'ai enfin trouvé à force de faire des tests...
    Changer une valeur dans le registre sans connaitre la Clé et qui change à chaque fois.
    Exemple :
    Je recherche la valeur "Mon Prog" dans HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
    Parce que la Clé change à chaque réinstallation et que je ne la connait pas.
    Comme ça, je trouve la Clé est je peux changer la valeur comme je veux.

    Nom : CMD.png
Affichages : 9
Taille : 13,4 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    @echo off
    @C:\Windows\System32\chcp 28591 > nul
    @C:\Windows\System32\mode con cols=150 lines=20
    @Title Exécution en Mode ADMIN 
    REM On exécute les commandes en administrateur
    ::------------------------------------------
    REM --> Vérification des permissions
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    REM --> Erreur vous ne possédez pas les droits admins
    if '%errorlevel%' NEQ '0' (
    REM --> vérification des privilèges administrateur
    goto UACPrompt
    ) else ( goto gotAdmin )
    :UACPrompt
    @echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"="
    echo UAC.ShellExecute "%~s0", "%params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    exit /B
    :gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
    @cls
    ::________________________________________________________________________________________
    echo.
    For /F "delims=" %%a in ('REG Query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /se # /F "Mon Prog" /S ^| findstr HKEY_') do (echo la Clé de Registre est : %%a )
    For /F "delims=" %%a in ('REG Query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /se # /F "Mon Prog" /S ^| findstr HKEY_') do set "chemin=%%a"
    ::-----
    echo Windows Registry Editor Version 5.00 > "%~dp0\reg.reg"
    echo. >> "%~dp0\reg.reg"  
    echo [%chemin%] >> "%~dp0\reg.reg"
    echo "DisplayName"="Mon Prog" >> "%~dp0\reg.reg"
    ::-----
    echo.
    REG IMPORT "%~dp0\reg.reg"
    ping 127.0.0.1 -n 2 > NUL
    del "%~dp0\reg.reg"
    ping 127.0.0.1 -n 5 > NUL
    exit
    OU

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    @echo off
    @C:\Windows\System32\chcp 28591 > nul
    @C:\Windows\System32\mode con cols=150 lines=20
    @Title Exécution en Mode ADMIN 
    :: On exécute les commandes en administrateur
    ::------------------------------------------
    REM --> Vérification des permissions
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    REM --> Erreur vous ne possédez pas les droits admins
    if '%errorlevel%' NEQ '0' (
    REM --> Vérification des privilèges administrateur
    goto UACPrompt
    ) else ( goto gotAdmin )
    :UACPrompt
    @echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"="
    echo UAC.ShellExecute "%~s0", "%params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
    "%temp%\getadmin.vbs"
    exit /B
    :gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
    @cls
    ::________________________________________________________________________________________
    echo.
    For /F "delims=" %%a in ('REG Query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /se # /F "Mon Prog" /S ^| findstr HKEY_') do (echo la Clé de Registre est : %%a )
    For /F "delims=" %%a in ('REG Query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall /se # /F "Mon Prog" /S ^| findstr HKEY_') do set "chemin=%%a"
    echo.
    REG ADD "%chemin%" /v "DisplayName" /t "REG_SZ" /d "Mon Prog" /f > NUL
    ping 127.0.0.1 -n 5 > NUL
    exit

    Quelqu'un connait quelque chose de similaire en Powershell ?
    Ou est-ce possible de convertir le bat en Poweshell ?

    Merci

Discussions similaires

  1. Trouver une valeur sans connaître la table
    Par Passepoil dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/07/2010, 15h47
  2. Réponses: 2
    Dernier message: 30/09/2008, 14h18
  3. [VBA-E] imprimer une feuille sans connaitre le nom
    Par srame dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/04/2007, 09h02
  4. modifier une propriété sans connaitre son nom
    Par cyberchand dans le forum C#
    Réponses: 2
    Dernier message: 17/04/2007, 16h17
  5. Réponses: 4
    Dernier message: 26/05/2006, 11h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo