J'ai du mal à trouver une solution pour étendre un framework conçu pour les machines * nix à Windows. Le framework fonctionne actuellement à partir d'un serveur * nix et de ssh vers d'autres serveurs * nix et exécute un tas de commandes différentes comme la vérification des fichiers journaux, la synchronisation des fichiers depuis le contrôle de code source, la soumission des journaux au contrôle de code source, etc. bloqué est de savoir comment se connecter aux machines Windows distantes et accéder à la ligne de commande. La connexion peut également provenir d'une autre machine Windows, elle n'a pas besoin de démarrer à partir d'une machine Unix, elle peut passer de Windows à Windows au lieu d'Unix à Windows.
Voici un exemple de la façon dont les commandes sont actuellement exécutées sur les systèmes Unix. Quelque chose comme ça est dans une boucle qui passe par une liste de noms de serveurs. J'ai besoin d'obtenir quelque chose comme ça pour fonctionner sur des machines Windows.
ssh ${user}@${server} "cd /app/app_name/logs; <export source control params>; <submit logs to source control>" >> Log.txt
De plus, je préférerais ne pas utiliser un outil tiers (mon budget est d'environ 0 $). J'ai vérifié PsExec et quelques autres, mais il semble que vous ayez besoin d'un accès administrateur ou que vous deviez transmettre des utilisateurs / passer en texte brut.
Réponses:
Utilisez Powershell Remoting: https://msdn.microsoft.com/en-us/powershell/scripting/core-powershell/running-remote-commands
Copié-collé sans vergogne:
la source
Essayez tunnellier de Bitvise. C'est un client ssh. Il y a aussi un serveur ssh pour se connecter à une machine Windows. Les deux vous permettent d'établir des connexions très sécurisées avec des choses plus avancées comme un proxy Web ou un tunneling de port.
la source
Installez le port OpenSSH pour Windows - c'est gratuit et fournit à la fois le client et le serveur.
la source
Vous pouvez essayer psexec qui vous donne un shell distant sur le service de partage de fichiers (ou comment cela s'appelle). Il existe également winexe si vous souhaitez utiliser Linux comme client.
la source
J'aime vraiment l'idée de PowerShell, bien que la configuration puisse prendre quelques minutes sur le serveur et le client.
Mis à part la réponse complète de Shanteva, qui suggère l'utilisation de PowerShell, vous devriez également jeter un coup d'œil ici sur le site Web howtogeek pour savoir comment activer (et autoriser) une connexion à distance au serveur PowerShell. Il y a un peu de configuration requise sur l'ordinateur serveur.
Deux choses importantes que vous devez faire: (Je n'ai pas besoin de mentionner que vous devez effectuer toutes les configurations "en tant qu'administrateur" non? Ouvrez simplement PowerShell / cmd "En tant qu'administrateur")
Sur l'ordinateur serveur, ouvrez PowerShell et exécutez:
Il existe également une autre manière de procéder. Vous pouvez ouvrir une invite de commande et exécuter:
Il pourrait y avoir beaucoup plus de configurations à changer. Pas besoin pour l'instant.
Si les deux ordinateurs sont sur le même «domaine» (un groupe d'ordinateurs auxquels chacun a des règles et des rôles différents assignés), la procédure semble être simple (je n'ai pas essayé cela).
MAIS, comme vous voulez probablement accéder à votre serveur via Internet (techniquement appelé le réseau WAN), il y a quelques complications et vous devez changer une configuration pour permettre la connexion au serveur distant. Sur l' ordinateur CLIENT, activez le service WINRM. La procédure est similaire à ce que nous avons fait pour le serveur ci-dessus. Exécutez simplement la commande:
(Encore une fois! Certaines références disent que l'ordinateur client et l'ordinateur serveur doivent être sur des réseaux «privés», ou le tout ne fonctionnera pas. Je reçois des messages d'erreur pour cela lorsque j'exécute la commande ci-dessus mais tout fonctionne . Je ne suis pas sûr de ce fait. Consultez la page Web susmentionnée.)
Exécutez ensuite sur l' ordinateur CLIENT dans PowerShell:
Ce qui signifie que le client fera confiance à tous les serveurs (hôtes). Enfin, exécutez ceci (sur le CLIENT encore une fois, je souligne):
Vous êtes prêt à partir. Vérifiez le reste de la réponse de Shanteva. Sur l'ordinateur CLIENT, exécutez par exemple:
Il vous demandera un mot de passe et la console distante s'ouvre qui ressemble à:
Saisissez ensuite les commandes comme vous le faites pour SSH.
la source