1 votes

Comment puis-je vérifier avec ssh que mon ordinateur Windows 10 est prêt pour une connexion à distance ?

Je réveille mon PC Windows 10 avec wakeonlan et se connecter avec un service de bureau à distance. Cependant, si j'essaie de me connecter trop tôt après avoir réveillé le PC, la connexion échoue et je dois réessayer.

Existe-t-il un moyen de vérifier que le PC est prêt pour une connexion avant d'essayer de lancer le client ?

Mes propres progrès jusqu'à présent

if ssh -o ConnectTimeout=10 user@machine.com 'tasklist | findstr "Process Name"'; then Do this
else
    echo Not Ready
fi

1voto

QuickishFM Points 889

En supposant que le PC Windows 10 réponde aux pings, vous pourriez faire un bash script pour vérifier et attendre qu'un ping soit reçu avec succès. Quelque chose comme :

#!/bin/bash #force interpreter to use bash
wakeonlan <ip> #whatever you use to wake it up

sleep 20 #20 second delay

ping <ip address>
if [ $? == 0 ] #if the ping responded and didn't time out
then
    <send command>
else
    <ping wasnt successfully returned here, so do something else>
fi

Vous pouvez l'adapter à une boucle de type While qui attend que le PC Windows 10 réponde, et peut-être ajouter un délai d'attente à la commande ping. Cependant, il s'agit d'un cadre de base qui devrait fonctionner, en supposant que le PC Windows réponde aux pings pour commencer. .

EDITAR:

Pour répondre à la mise à jour de l'OP, les pings ne fonctionneront pas si le PC Windows a besoin de temps pour s'initialiser après s'être connecté au réseau. Au lieu de cela, vous pouvez essayer de vous connecter en boucle via SSH (ce qui, d'après ce que j'ai compris, est nécessaire pour procéder), puis, une fois la connexion réussie, lancer la commande suivante. Le code de sortie de SSH peut également vous aider.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X