Est-il possible d'exécuter des commandes Windows à l'aide de l'outil rdesktop
sous Linux? J'ai essayé avec rdesktop -s
option:
rdesktop -u user -p 10.0.0.2 -s "cmd.exe"
mais je ne parviens pas à ouvrir le cmd.exe
en utilisant la commande ci-dessus, j'ai aussi essayé avec le chemin complet:
rdesktop -u user -p'password' 10.0.0.2 -s "C:\WINDOWS\system32\cmd.exe"
mais il n'y a pas de différence dans la session RDP même si j'utilise -s
.
J'essaie d'obtenir une liste des sessions RDP en utilisant qwinsta /server
sous Windows à partir de Linux.
Je n'ai pas de solution utilisant rdesktop
mais j'utilise un programme appelé winexe
sous Linux pour exécuter des commandes à distance sur des machines Windows. Vous pouvez obtenir l'application à partir de l'URL suivante ou utiliser le système de référentiel de logiciels de votre distribution pour l'installer.
MISE À JOUR: Le certificat SSL est auto-signé pour le lien sourceforge ci-dessus, donc je fournis un autre lien:
Voici un exemple d'utilisation:
winexe -A credentials.cfg //remotehost "qwinsta /server"
Vous souhaiterez créer un fichier credentials.cfg avec les informations de connexion comme suit:
username=user
password=pass
domain=workplace
Fournissez le domaine uniquement s'il s'applique à vous. Il est recommandé de ne pas mettre vos informations de connexion (en particulier votre mot de passe) sur la ligne de commande. Essayez d'exécuter cmd.exe
en utilisant l'exemple ci-dessus si vous souhaitez une invite interactive. Une bonne chose à propos de cette approche est que vous pouvez utiliser la sortie de la commande à distance dans vos scripts Linux ou grep la sortie.
Si vous avez accès à l'ordinateur, installez-y un serveur ssh. Sous Linux, vous pouvez utiliser par exemple Overlook-Fing pour trouver l'IP de l'ordinateur. Ensuite, vous tapez ssh username@ipaddress
dans le shell Linux.
Exemple:
ssh [email protected]
Tapez ensuite le mot de passe de l'utilisateur et vous devriez avoir accès à l'invite de commandes Windows de l'ordinateur. Vous pouvez également utiliser telnet mais ssh est crypté.
À partir d'aujourd'hui, vous pouvez utiliser xfreerdp
avec sa fonction RemoteApp pour exécuter un logiciel spécifique:
xfreerdp
sur votre hôte Linux. Il existe versions prêtes à l'emploi pour Ubuntu, Debian, Fedora, OpenSUSE et macOS.xfreerdp /u:user /d:domain /p:password /app:"||calc" /v:server
où:/u:
- Utilisateur Windows/d:
- Domaine (pourrait être WORKGROUP
s'il n'est pas joint à un AD)/p:
- Mot de passe Windows/app:"||calc"
- Application à exécuter. Peut être cmd
comme vous le souhaitez/v:
- Adresse IP ou nom d'hôte de l'hôte Windows.J'ai développé collectnode
, qui utilise le protocole winrm
pour me connecter à Windows.
d'abord: créez un fichier d'hôtes:
# cat hosts.file
[group1:vars]
nodetype=windows
[group1]
server1
server2
server3
server4
server5
deuxième: configurer les informations d'identification à CollectNode
# collectnode --configure
Do you want to change the localhost User ? [y/n]: n
Do you want to change the UNIX/LINUX User used the connect to the servers? [y/n]: n
Do you want to change the WINDOWS User used the connect to the servers? [y/n]: y
Enter user name: Administrator
Enter password:
Enter domain|realm [none]: none
Enter transport mode (basic|ntlm|kerberos) [kerberos]: ntlm
Current path: /var/log/
Do you want to change the current path for log file? [y/n]: n
troisième: Exécutez toute commande dont vous avez besoin sur ces serveurs:
# collectnode --file hosts.file --command='whatever command you need'
https://collectnode.com/executing-commands-on-remote-windows-from-linux-terminal/