Windows Shell : récupérer une valeur de la base de registre

Résolu/Fermé
ghostdog - 30 janv. 2017 à 18:36
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 - 3 févr. 2017 à 08:24
Bonjour,

Alors je suis pas un codeur mais il se trouve que là, j'aurais besoin d'écrire un bout de code.

Sous windows, il existe la commande shell : REG QUERY HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters\ /v srvcomment

J'aimerais savoir s'il est possible de récupérer le contenu de la valeur "srvcomment" dans une variable sous shell pour l'exploiter ensuite



A voir également:

3 réponses

Ce sujet m'a permis de faire la chose suivante :
for /f "tokens=3" %%a in ('REG QUERY HKLM\SYSTEM\RNG /v Seed') do echo %%a
pause


ça affiche bien la valeur "Seed" du registre.

EDIT :
@echo off
for /f "tokens=3" %%a in ('REG QUERY HKLM\SYSTEM\RNG /v Seed') do set var=%%a
@echo on
echo %var%
pause

Aider est mon nindo
1
ghostdog4ever Messages postés 7 Date d'inscription lundi 30 janvier 2017 Statut Membre Dernière intervention 3 février 2017
30 janv. 2017 à 18:57
Merci.

Mais la commande Reg Query affiche elle aussi la valeur. Ce que je veux c'est récupérer cette valeur dans une variable.
0
Utilisateur anonyme
30 janv. 2017 à 19:00
C'était presque gagné avec ce code (cf. mon message édité)
0
ghostdog4ever Messages postés 7 Date d'inscription lundi 30 janvier 2017 Statut Membre Dernière intervention 3 février 2017 > Utilisateur anonyme
30 janv. 2017 à 19:03
Oui ça ça semble par mal mais pourrais tu m'expliquer le role de la boucle for s'il te plait ?
0
Utilisateur anonyme
30 janv. 2017 à 19:05
Je pense que ça sert à récupérer le troisième élément (
tokens = 3
) de l'affichage de la commande (qui est la valeur recherchée).
0
ghostdog4ever Messages postés 7 Date d'inscription lundi 30 janvier 2017 Statut Membre Dernière intervention 3 février 2017
30 janv. 2017 à 19:08
ok Merci beaucoup !
Je vais explorer cette piste !
Je ne mets pas le topic comme résolu tant que je n'ai pas pu tester.
0
Malekal_morte- Messages postés 180304 Date d'inscription mercredi 17 mai 2006 Statut Modérateur, Contributeur sécurité Dernière intervention 15 décembre 2020 24 628
30 janv. 2017 à 18:45
0
ghostdog4ever Messages postés 7 Date d'inscription lundi 30 janvier 2017 Statut Membre Dernière intervention 3 février 2017
30 janv. 2017 à 18:53
Bonsoir et merci.

Hélas je ne trouve pas ce que je cherche. Il est même probable que ce soit impossible.

Si j'écris un truc du genre Set description=REG QUERY HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters\ /v srvcomment

ça ne fait pas passer la valeur de srvcomment dans description, ça fait passer la commande entière. :(
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
Modifié par barnabe0057 le 1/02/2017 à 00:39
Bonsoir,

Help-Jason t'a donné la solution mais apparemment tu n'arrives pas à la voir.

Si tu veux récupérer la valeur dans une variable il faut utiliser la boucle for comme on te l'a expliqué.

@echo off

for /f "tokens=3,*" %%A in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v srvcomment') do (set var=%%A %%B)

echo %var%

pause
0
L'auteur de ce sujet a retenu ma solution mais elle n'est pas modulaire dans le sens où je ne prends que le troisième mot alors que le nom de l'ordinateur peut être plus long. Je lui ai donc expliqué qu'il fallait lire à partir du troisième.
0
ghostdog4ever Messages postés 7 Date d'inscription lundi 30 janvier 2017 Statut Membre Dernière intervention 3 février 2017
3 févr. 2017 à 08:20
Bonjour Barnabe, tu as en partie raison.
Comme te le dis Help-Jason je suis satisfait de la solution car j'obtiens ce dont j'ai besoin.
Là où ça coince, c'est sur la syntaxe de la boucle for. Je n'ai jamais codé en Shell et ma connaissance de la programmation se résume au Basic de l'Amstrad CPC 6128 et quelques programmes simples en C sous DOS dans les années 90. Je n'arrive pas à saisir l'articulation de la boucle for et je serais bien incapable d'en réécrire une pour autre chose en partant de l'exemple donné par Help-Jason.
Ceci-dit, c'est secondaire puisque j'ai ce que je voulais et je sais où intervenir pour obtenir un autre résultat.
Je ne trouve pas comment éditer le topic pour le marquer comme Résolu.
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > ghostdog4ever Messages postés 7 Date d'inscription lundi 30 janvier 2017 Statut Membre Dernière intervention 3 février 2017
Modifié par barnabe0057 le 3/02/2017 à 08:34
Très bien, si tu as besoin d'explications sur la boucle for je suis là.

Elle était beaucoup moins évoluée mais la boucle for existait déjà sur le BASIC Locomotive de l'Amstrad CPC 6128 ;)

Pour passer en "résolu", tu as un lien en dessous du titre et de la date de ton premier message, je vais le faire à ta place car je ne crois pas que tu puisses le faire, tu n'étais pas encore inscrit quand tu as posté ton problème.
0