Batch "Bureau à distance" en tant qu'autre utilisateur.

Fermé
zekey_0764 Messages postés 19 Date d'inscription jeudi 15 septembre 2022 Statut Membre Dernière intervention 21 décembre 2023 - 2 juin 2023 à 00:35
brucine Messages postés 16997 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 30 septembre 2024 - 3 juin 2023 à 09:19

Bonjour à tous,

Je cherche le moyen d'ouvrir le logiciel "Bureau à distance" avec une IP prédéfini en tant qu'autre utilisateur.

Tout ça dans un fichier batch !

J'ai déjà ceci pour commencer :

@echo off

"mstsc.exe" /v:00.00.00.000 /w:1920 /h:1080

J'ai tenté de rajouter :

runas /user:(DOMAINE)\(NOM_UTILISATEUR)

Mais sans succès.

En gros, il faudrait que le batch me demande seulement mon mot de passe, si possible avec l'interface du CMD.

Merci d'avance et en attente de votre aide.

4 réponses

steph810 Messages postés 1633 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 30 mars 2024 136
Modifié le 2 juin 2023 à 07:50

Petite modif si ca te convient dit le merçi.

Un exemple içi https://www.youtube.com/watch?v=KYxmauPi8ag&feature=youtu.be

Pour CMD tu est limité mais tu peut dans le terminal taper pour les commande que tu peut ajouter:

mstsc / f

ci-dessous 2 solutions tester

$servername = "Mon Serveur"
echo "Connecting to " + $servername
$Server="192.168.142.161"
$username = "Administrateur"
cmdkey /generic:TERMSRV/$Server /user:$username /password:$rdppassword
mstsc /v:$Server

ou alors

#cmdkey /list | ForEach-Object{if($_ -like "*target=TERMSRV/*"){cmdkey /del:($_ -replace " ","" -replace "Target:","")}}

$user = $null
$server = $null
$serverPassword = $null
$server = "192.168.142.161" # Change ip entre guillemet par le nom de domaine ou l'ip du serveur
Write-Host $(" Bureau a distance " * 1) -BackgroundColor 'Red' -NoNewline;
echo ""
Write-Host $("  
██████╗ ██████╗ ██████╗ 
██╔══██╗██╔══██╗██╔══██╗
██████╔╝██║  ██║██████╔╝
██╔══██╗██║  ██║██╔═══╝ 
██║  ██║██████╔╝██║     
╚═╝  ╚═╝╚═════╝ ╚═╝   
" * 1) -BackgroundColor 'Blue' -NoNewline;


echo ...
Get-Date; Start-Sleep -Seconds 2
echo ...
echo "Connection a $server" 
echo ...
$user = "Administrateur" # Change Administrateur par ton nom d'utilisateur
$serverPassword = ConvertTo-SecureString "Mot de passe" -AsPlainText -Force
cmdkey /generic:TERMSRV/$server /user:$user /pass:$serverPassword #si cette ligne est commenter avec # après la premiere connection il ne demandera + le mot de passe
mstsc /v:$server  # Change la resolution par celle voulue, si tu veut resolution perso ajoute /w:800 /h:600  
1
zekey_0764 Messages postés 19 Date d'inscription jeudi 15 septembre 2022 Statut Membre Dernière intervention 21 décembre 2023
2 juin 2023 à 20:22

Merci !

J'aime beaucoup le premier.

Par contre, je trouve ça bizarre de ne pas pouvoir mettre le nom de domaine.

0
brucine Messages postés 16997 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 30 septembre 2024 2 412
2 juin 2023 à 09:07

Bonjour,

Dans une solution Batch pure, les identifiants ne passent pas par runas mais par cmdkey.

Un script que j'ai recopié textuellement et qui prend comme variables également l'IP, le nom de l'utilisateur  et le nom de l'ordinateur cible, rien n'empêchant de mettre dans la commande cmdkey les valeurs fixes de ce qu'on ne veut pas avoir à entrer à la place des variables correspondantes.

Si on veut que le mot de passe soit demandé à chaque fois, il faut remplacer la ligne SET PASSWORD par:
SET /P PASSWORD=Entrez votre mot de passe:

On va se faire planter si le mot de passe contient des caractères spéciaux, d'une part à l'affichage (mais qu'on peut résoudre via la table de codes appropriée, généralement CHCP 65001>NUL), mais surtout parce qu'il faudrait alors les échapper lors de leur saisie, ce qui rend alors l'entrée à la demande de ce mot de passe impraticable.

 

@echo off
SET IP=172.X.Y.XY
SET USERNAME=DOMAIN_NAME_REPLACE\USERNAME_REPLACE
SET PASSWORD=PASSWORD_REPLACE
cmd /c cmdkey /add:TERMSRV/%IP% /user:%USERNAME% /pass:%PASSWORD%
cmd /c "mstsc /f /v:%IP% /w:1920 /h:1080"
1
steph810 Messages postés 1633 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 30 mars 2024 136
Modifié le 2 juin 2023 à 03:47

voila mais en Powershell si le script ne fonctionne pas c'est parcequ'il faut autoriser avec:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
$user = $null
$server = $null
$serverPassword = $null
$server = "192.168.142.161" # Change ip entre guillemet par le nom de domaine ou l'ip du serveur
echo "Connection a " 
echo ...
echo ...
$server
$user = "Administrateur" # Change Administrateur par ton nom d'utilisateur
echo ...
echo ...
$serverPassword = Read-Host "password" -AsSecureString
cmdkey /generic:TERMSRV/$server /user:$user /pass:$serverPassword
mstsc /v:$server /w:1920 /h:1080 # Change la resolution par celle voulue, si tu enleve /w:1920 /h:1080 tu aura ta fenetre normale full screen classique rdp



0
zekey_0764 Messages postés 19 Date d'inscription jeudi 15 septembre 2022 Statut Membre Dernière intervention 21 décembre 2023
2 juin 2023 à 20:10

Merci à tous pour vos lignes et pour votre rapidité ! :)

Cependant, une fois le code configuré avec mes informations, le pop-up "en tant qu'autre utilisateur" de Windows me demande de me loguer (identifiant + mot de passe), il ne prend pas en compte mon nom d'utilisateur dans le batch, il prend en compte le dernier à s'être logué sur "Bureau à distance".

Au final, je tape une fois mon nom d'utilisateur (sur mstsc) et deux fois mon mot de passe (sur le batch et mstsc).

J'aurais besoin de m'identifier une seule fois, seulement avec mon mot de passe.

Que ce soit depuis le batch ou mstsc n'a pas d'importance tant que je me logue une fois à l'ouverture du .bat.

Merci encore pour vos réponses, j'attends votre retour. ^^

0
steph810 Messages postés 1633 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 30 mars 2024 136
2 juin 2023 à 21:22

Ne pas commenter la 1ère ligne.

Dsl suis pas devant la machine je regarderai ça.

cmdkey /list | ForEach-Object{if($_ -like "*target=TERMSRV/*"){cmdkey /del:($_ -replace " ","" -replace "Target:","")}}
0
brucine Messages postés 16997 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 30 septembre 2024 2 412
3 juin 2023 à 09:19

Je ne peux pas tester faute d'avoir une machine distante.

Les solutions passeraient par ajouter une ligne cmdkey /generic ou bien exécuter les paramètres à partir d'un fichier les ayant enregistrés, l'inconvénient étant dans les 2 cas que ces identifiants seront enregistrés sur le système.

https://stackoverflow.com/questions/14481882/login-to-remote-using-mstsc-admin-with-password

0