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 :

Ecriture clé registre HKEY_USERS\SID_UTILSATEUR en Batch [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Par défaut Ecriture clé registre HKEY_USERS\SID_UTILSATEUR en Batch
    Salut la communauté.

    Voici la problématique :

    Je suis en train de finaliser un script batch et je rencontre une petite difficulté.
    Une partie de ce script doit modifier la session de l'utilisateur actuellement connecté sur le poste (après réouverture de session bien évidemment).

    La modification doit obligatoirement se faire dans le registre, à cet emplacement : HKEY_USERS\SID_UTILISATEUR.
    Et ce script doit obligatoirement se faire en batch (oui ça fait longtemps qu'il serait finit si j'avais pu le faire en powershell mais c'est comme ça).

    Vu que chaque SID utilisateur est complétement différent l'un de l'autre (c'est le principe), j'ai pensé que je devais dire à mon script de faire la chose suivante :

    - Prend les clés de tous les SID utilisateur qui ne sont pas les suivantes S-1-5-18 / S-1-5-19 / S-1-5-20 à l'intérieur de la clé principale HKEY_USERS et fait tes modifications dans le registre par la suite.
    En faisant cela (exclure les SID connus), les modifications que je dois faire par la suite sont censés se faire dans les clés SID de tous les utilisateurs (ou session utilisateur pour être plus précis) actuellement connectés sur le poste.

    Mais voilà, je n'arrive à exclure qu'un seul SID connut, alors que je voudrais en exclure plusieurs (tous ceux qui ne concernent pas les sessions utilisateurs en cours en fait) et je me demande donc si c'est moi qui m'y prend pas mal ou si je suis
    limité par les possibilités du batch (car très limité quand même, pas de ET logique etc etc) mais je pense que c'est moi qui m'y prend mal et il y a peut être une autre manière de faire, voici juste en dessous une illustration du bout de code me
    posant problème (que j'ai isolé pour simplifié) :

    Nom : Screen Shot 06-07-16 at 07.26 AM.PNG
Affichages : 2002
Taille : 169,1 Ko

    J'espère avoir était clair.
    S@lut les gars.

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bonjour à toi,

    Question subsidiaire, est tu dans un environnement AD ?
    Possibilité de modifier/créer des GPO ?

  3. #3
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Par défaut
    Bonjour cerede2000,

    Particularité de la chose : Les postes utilisateurs sont bien dans un environnement AD mais je n'ai aucune vue ni aucun droit sur les serveurs (je suis prestataire) et je dois me débrouiller pour "forcer" cela manuellement sur le poste client.
    Il n'y a pas d'autres solutions pour moi que de passer par le script que j'ai mentionné au-dessus. Je ne peux pas et ne doit pas toucher au GPO.

    Merci pour ta réponse.

  4. #4
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Super pratique....

    Et dernier question bête
    Pas possible en VBS ?

    Pour filtrer plus facilement tu devrais tu baser sur la longueur de la clé
    Si la clé fait 44 caractères alors c'est ok !

    Ou sinon sur le début, si commence par S-1-5-21 alors c'est ok sinon ne pas traiter.

  5. #5
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Par défaut
    Pas possible en VBS, mais super idée oui le fait de se baser sur la longueur de la clé de registre.
    Penses-tu qu'il est possible de faire cela en batch uniquement ?
    Je n'ai pas forcément besoin de la solution mais uniquement de savoir si c'est possible ou pas, ensuite je peux creuser de mon côté, puis poster le résultat par la suite.
    En revanche je compte 46 caractères en comptant tous les caractères de la clé S-1-5-21-2982001086-3156140432-1193128794-1000 (pour reprendre l'exemple de ma copie d'écran).

    Merci !

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Suis-je bête !!!!
    Je ne fais plus assez de batch...

    Utilise ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .... ^| findstr /R "S-1-5-21-[0-9]*-[0-9]*-[0-9]*-[0-9]*$"
    Tu filtre d'un coup les .DEFAULT, S-1-5-18, 19, 20... et les _Classes

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ce que je ne comprends pas, c'est que si le script ne modifie que le Registre de l'utilisateur connecté courant, alors qu'il est connecté, qu'est-ce qui empêche d'utiliser HKEY_CURRENT_USER?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Ce que je ne comprends pas, c'est que si le script ne modifie que le Registre de l'utilisateur connecté courant, alors qu'il est connecté, qu'est-ce qui empêche d'utiliser HKEY_CURRENT_USER?

    C'est vrai que je n'ai pas prêté attention à ce détails !
    Mais en relisant le topic d'origine.......

  9. #9
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Par défaut
    Citation Envoyé par Médinoc
    Ce que je ne comprends pas, c'est que si le script ne modifie que le Registre de l'utilisateur connecté courant, alors qu'il est connecté, qu'est-ce qui empêche d'utiliser HKEY_CURRENT_USER?
    Bon je vois que je dois expliquer mais je m'y attendais et je peux bien faire cela pour des personnes cherchant à m'aider

    En fait j'exécute le script sur le poste client avec un "remote command" depuis mon poste à moi (invite de commande me permettant de faire des lectures/écritures comme si j'étais en local sur le poste) en déposant un .bat via un partage
    administratif \\hostname\D$. Et au début en effet je me suis dit qu'il fallait simplement que je fasse mes modifications dans la clé primaire HKEY_CURRENT_USER. Ben ça a fonctionné mais sur ma session à moi ... car lors de mon accès avec le remote commande, c'est moi le HKEY_CURRENT_USER ! (ou %USERNAME%) Voilà pour la petite explication.

    Citation Envoyé par cerede2000
    Utilise ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Code :.... ^|findstr /R "S-1-5-21-[0-9]*-[0-9]*-[0-9]*-[0-9]*$"
    Je n'avais pas fait attention à cette commande avec mon petit "help" listant toutes les commandes dans cmd.exe ! C'est cette commande que je cherché ! Merci pour tes lumières cerede2000, je test cela dans la journée et ça devrait fonctionner comme sur des roulettes.

    Merci les gars

  10. #10
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ah oui en effet !!
    Précision qui à son importance

  11. #11
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Donc en fait, tu exécutes le batch sur une machine distante où un utilisateur est connecté (comment sais-tu cela?), pour modifier le registre personnel dudit utilisateur en profitant du fait qu'il soit chargé, mais en tant que ta propre identité de semi-administrateur (ayant les droits pour modifier les registres en question mais pas pour passer par une Group Policy)?

    Et le tout sans avoir droit à quoi que ce soit de plus élaboré que Batch et reg.exe?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Par défaut
    Salut,

    Merci cerede2000 pour le rappel de cette commande car j'ai pu faire tout ce que j'avais à faire grâce à cela .

    Exemple d'une des commandes du script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f %%i in ('reg query "HKU" ^| findstr /R "S-1-5-21-[0-9]*-[0-9]*-[0-9]*-[0-9]*$"') do reg add %%i\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoClose /t REG_DWORD /d 1 /f
    Citation Envoyé par Médinoc
    Donc en fait, tu exécutes le batch sur une machine distante où un utilisateur est connecté (comment sais-tu cela?), pour modifier le registre personnel dudit utilisateur en profitant du fait qu'il soit chargé, mais en tant que ta
    propre identité de semi-administrateur (ayant les droits pour modifier les registres en question mais pas pour passer par une Group Policy)?

    Et le tout sans avoir droit à quoi que ce soit de plus élaboré que Batch et reg.exe?
    Tu as tout compris Médinoc bien que cela puisse paraitre "étrange". Et je viens d’ailleurs de finir le script en question qui fonctionne à merveille après plusieurs tests.

    Merci pour votre participation les gars

  13. #13
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Par contre, ce code agit sur TOUS les utilisateurs dont le profil est chargé, pas seulement l'utilisateur ciblé.

    En fait, n'as-tu pas moyen de passer le SID de l'utilisateur voulu en paramètre de ton batch?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre averti
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseau

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Par défaut
    Citation Envoyé par Médinoc
    Par contre, ce code agit sur TOUS les utilisateurs dont le profil est chargé, pas seulement l'utilisateur ciblé.

    En fait, n'as-tu pas moyen de passer le SID de l'utilisateur voulu en paramètre de ton batch?
    Oui je sais bien que ce code agit sur tous les utilisateurs dont le profil est chargé et c'est le but d'ailleurs ! C'est volontaire !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecriture du registre C++
    Par Esp010 dans le forum C++
    Réponses: 2
    Dernier message: 27/02/2013, 16h47
  2. Ecriture dans registre Windows 7
    Par bremer dans le forum Langage
    Réponses: 4
    Dernier message: 03/12/2009, 09h29
  3. Probleme ecriture dans la base de registre
    Par Deton@tor dans le forum C++Builder
    Réponses: 8
    Dernier message: 30/04/2008, 15h03
  4. Ecriture clés registre
    Par sansblague dans le forum Windows
    Réponses: 1
    Dernier message: 05/10/2007, 23h38
  5. Créer une clé de registre dans un script batch
    Par persam dans le forum Windows XP
    Réponses: 2
    Dernier message: 27/07/2007, 11h32

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