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 :

Changement du nom de la dernière session ouverte sous W10


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2017
    Messages : 66
    Par défaut Changement du nom de la dernière session ouverte sous W10
    Bonjour,

    Devant me connecter sur plusieurs postes à distance au sein de mon entreprise pour installer des softs, je dois ouvrir ma session admin. Une fois fini j'aimerais par le biais d'un batch indiquer le nom du user utilisant la machine ainsi que le domaine, pour que lorsqu'il se reconnecte il n'est plus qu'à rentrer son mdp sans voir mon identifiant à la place.
    On le faisait avant avec ça sous XP:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
    
    "DefaultUserName"="toto"
    "DefaultDomainName"="maison"
    Mais cela ne fonctionne plus.

    Ma tentative infructueuse sous Win10:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
    "LastUsedUsername"="toto"
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon]
    
    "DefaultUserName"="toto"
    "DefaultDomainName"="maison"

    Merci d'avance.

  2. #2
    Membre habitué Avatar de Medeay
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    Bonjour riko60

    J'ai fait quelque test en local (sans domain). Sous Windows 10 les clefs de registre a modifier, pour changer le nom de la dernière session soit celle-ci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI]
    
    "LastLoggedOnSAMUser"=".\Utilisateur"
    "LastLoggedOnUser"=".\Utilisateur"
    "SelectedUserSID"="S-1-5-21-112783954-3472839473-6329827380-1437"
    Il est semble possible d'ajouter le nom de domaine dans les clef "LastLoggedOnSAMUser" & "LastLoggedOnUser" comme ceci "domaine\Utilisateur".
    Mais pour la clef "SelectedUserSID", il faudra récupérer le uid de la session utilisateur.
    Une commande utile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wmic useraccount get name,sid
    Source = https://gist.github.com/dbirks/ec441...f435ee934efd71

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2017
    Messages : 66
    Par défaut
    Merci pour ton aide

    Chez moi en W10 cela fonctionne avec ce code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EGEDIT4
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI]
    
    "LastLoggedOnSAMUser"=".\\toto"
    "LastLoggedOnUser"=".\\toto"
    "LastLoggedOnUserSID"="S-1-5-21-1008757297-1703540037-127220545-1004"
    Pour trouver le sid d'une autre session pas de problème avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wmic useraccount get name,sid
    Par contre au boulot cela fonctionne qu'avec les comptes locaux apparemment cette commande ne donne que les sid des comptes locaux, pour les comptes dans un domaine ActiveDirectory, la commande qu'il faudrait utiliser est ? mais qui ne retourne que le sid de la session courante.
    Dans mon cas je vais me connecter sur un poste distant avec la session user fermée donc pas moyen d'avoir son sid sous sa session. Il faudrait que je puisse récupérer son sid depuis ma session admin et le tour serait joué.

    J'ai essayé aussi avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wmic useraccount | findstr allan
    mais pas plus de résultat.

    Je vais essayer de trouver une réponse sur ce post :

    https://www.windows-commandline.com/get-sid-of-user/

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2017
    Messages : 66
    Par défaut
    J'ai trouvé grâce à ce site : https://blogs.msdn.microsoft.com/gau...ic-powershell/

    et cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wmic useraccount where (name='administrator' and domain='gauravtestMachine') get name,sid
    Maintenant je vais essayer de créer un .bat pour automatiser tout ça.

    En tout cas merci à toi Medeay ton coup de pouce m'a débloqué la situation.

  5. #5
    Membre habitué Avatar de Medeay
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2019
    Messages : 13
    Par défaut
    Pas de soucie, du coup j'en est profiter pour me faire une script histoire d'ajouter cette fonctionnalité a "ma boite a outils Windows"

    Pour le script, je te mette le code ci dessous.
    Bon pour le moment il faut modifier la variable ME_DOMAIN a la main et si le nom d'utilisateur n'est pas trouver l'erreur n'est pas gérer, mais c'est un début

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    @ECHO OFF
    SETLOCAL
    MODE con cols=100 lines=15
    title Definir la dernier session ouverte
    
    :CHECK_ADMIN
    REM Verifier ci le script est bien executer en Administrateur
    	attrib %windir%\system32 -h | findstr /I "system32" >nul
    	IF %errorlevel% neq 1 (
    	color 0C
    	ECHO. --------------------------------------------------------------
    	ECHO. /!\ Ce script doit etre Executer en tant qu'Administrateur /!\
    	ECHO. --------------------------------------------------------------
    	PAUSE
    	GOTO END
    	)
    	GOTO SET_VARIABLE
    	
    :SET_VARIABLE
    REM Liste des variables du script, la variable ME_USER_SID et definie plus tard par FIND_SID & ME_USER_SID_NO_SPACE
    	SET ME_VERSION=1.0
    	SET /p ME_USER_NAME= Saisir le nom utilisateur :
    	SET ME_DOMAIN=desktop-1fk6cg8
    	SET ME_USER_SID=
    	SET ME_DOMAIN_AND_USERNAME=%ME_DOMAIN%\%ME_USER_NAME%
    	SET ME_TEMP_FILE=%TMP%\medeay.txt
    	GOTO FIND_SID
    
    :FIND_SID
    REM Cherche les SID de l'utilisateur %ME_USER_NAME% et definie le variable ME_USER_SID
    	wmic useraccount where (name='%ME_USER_NAME%' and domain='%ME_DOMAIN%') get sid> %ME_TEMP_FILE%
    	for /f "skip=1 tokens=1 delims=="%%i in ('type "%ME_TEMP_FILE%"') do SET ME_USER_SID=%%i
    	GOTO ME_USER_SID_NO_SPACE
    
    :ME_USER_SID_NO_SPACE
    REM Remplace les espaces de la variable ME_USER_SID par rien, afin d'avoir une variable sans espace
    	SETLOCAL EnableDelayedExpansion
    	SET $VAR=%ME_USER_SID%
    	SET $VAR=!$VAR: =!
    	SET ME_USER_SID=!$VAR!
    	GOTO ECHO_VAR
    
    :ECHO_VAR
    REM Affiche les variable pour vérifier les valeur
    	ECHO Version du script      = "%ME_VERSION%"
    	ECHO Nom de l'utilisateur   = "%ME_USER_NAME%"
    	ECHO Nom du domaine         = "%ME_DOMAIN%"
    	ECHO SID de l'utilisateur   = "%ME_USER_SID%"
    	ECHO Domaine + UserName     = "%ME_DOMAIN_AND_USERNAME%"
    	PAUSE
    	GOTO REG_ADD_LAST_USER
    
    :REG_ADD_LAST_USER
    REM Modifie les clef de registre pour changer la dernière session ouverte
    	REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" /v "LastLoggedOnSAMUser" /d "%ME_DOMAIN_AND_USERNAME%" /f /t REG_SZ
    	REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" /v "LastLoggedOnUser" /d "%ME_DOMAIN_AND_USERNAME%" /f /t REG_SZ
    	REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" /v "SelectedUserSID" /d "%ME_USER_SID%" /f /t REG_SZ
    	REG add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" /v "LastLoggedOnUserSID" /d "%ME_USER_SID%" /f /t REG_SZ
    	timeout /t 10
    	GOTO END
    
    :END
    REM Fin du script
    	ENDLOCAL
    	EXIT

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2017
    Messages : 66
    Par défaut
    Merci pour ton retour, je galérai avec la variable recevant le résultat de la commande wmic.
    On ne peut pas affecter le résultat d'une commande sans passer par un fichier .txt?

    Sinon merci pour ton script je l'ai globalement compris, par contre peux tu m'expliquer le fonctionnement des options du For /f

    le fichier txt reçoit un résultat sous cette forme :

    Name SID
    XXXXX S-1-5-21-1421355107-XXXXXXXXXX-2030404034-211034

    le for /F(analyse un fichier) le skip=1(ignore la première ligne) ok après je vois pas comment le tokens=1 et delims== isole le sid.
    Le tokens 1 devrait prendre en compte XXXXX

    De plus en retirant le delims== le script retourne toujours bien le sid. Cette commande For me laisse perplexe...

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

Discussions similaires

  1. Recup le nom de la session ouverte
    Par Aurèl90 dans le forum Access
    Réponses: 5
    Dernier message: 09/12/2005, 10h09
  2. Changement de nom de la rubrique UML ? Modélisation ?
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 12
    Dernier message: 14/11/2004, 20h54
  3. [install] changement de nom
    Par ALCINA dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/06/2004, 12h21
  4. changement de nom de fichier avec smartupload
    Par bourvil dans le forum ASP
    Réponses: 2
    Dernier message: 24/05/2004, 14h50
  5. Changement de nom de PC [DEBIAN]
    Par [_Key_Zee__] dans le forum Réseau
    Réponses: 8
    Dernier message: 22/04/2004, 13h09

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