Comment puis-je me connecter à un serveur Windows à l'aide d'une interface de ligne de commande? (CLI)

90

Surtout avec l'option d'installer Server Core dans Server 2008 et versions ultérieures, la connexion à des serveurs Windows via une CLIcapacité est de plus en plus utile, voire très répandue parmi les administrateurs Windows.

Pratiquement tous GUIles outils de gestion Windows ont une option pour se connecter à un ordinateur distant, mais aucune option de ce type n'est présente dans la fonction intégrée Windows CLI( cmd.exe), ce qui donne l'impression initiale que cela pourrait ne pas être possible.

Est-il possible de gérer ou d'administrer à distance un serveur Windows à l'aide d'une interface de ligne de commande? Et si oui, quelles sont les options pour y parvenir?

HopelessN00b
la source

Réponses:

102

Il existe plusieurs options assez simples pour gérer à distance un serveur Windows distant à l'aide d'une ligne de commande, y compris quelques options natives.

Options natives:

  1. WinRS / WinRM

    • Windows Remote Shell / outil de gestion est le moyen le plus simple de gérer à distance un serveur Windows distant dans un utilitaire de ligne de commande. Comme avec la plupart des utilitaires de ligne de commande Windows, ss64 possède une bonne page sur ses options et sa syntaxe .
    • Bien que cela ne soit pas explicitement indiqué dans la documentation Microsoft, cela peut être utilisé pour lancer une instance distante de cmd.exe, qui crée une ligne de commande interactive sur le système distant, plutôt que comme une option de ligne de commande pour exécuter une commande unique sur un serveur distant.
      • Comme avec: winrs -r:myserver.mydomain.tld cmd
    • C'est également l'option prise en charge en mode natif qui sera probablement la plus familière pour les administrateurs d'autres systèmes (* nix,, BSDetc.) principalement CLIbasés sur.

  2. PowerShell

  3. Bureau à distance

    • Probablement pas la première chose qui me vient à l’esprit en tant CLIqu’option Windows , mais bien sûr, l’utilisation mstsc.exede la connexion à un serveur via Remote Desktop Protocl ( RDP) permet l’utilisation d’une ligne de commande sur le serveur distant.
    • La connexion à une installation Server Core RDPest en fait possible et donnera la même interface que la connexion à la console - une instance de cmd.exe.

Options populaires et non natives:

Même si Windows fournit désormais quelques options natives pour accéder à un serveur distant via un serveur distant CLI, cela n’a pas toujours été le cas et, par conséquent, un certain nombre de solutions tierces relativement populaires ont été créées. Les trois plus notables sont ci-dessous.

  1. Installez SSH sur votre serveur Windows

    • Si vous en avez juste besoin SSH, c’est aussi une option. Il existe un guide sur social.technet pour savoir comment installer OpenSSH sur Server 2008.
    • Probablement plus utile pour les administrateurs d’autres systèmes (* nix,, BSDetc.) qui utilisent beaucoup SSHà cette fin, bien que même les administrateurs dotés de Windows ne soient avantagés par le fait qu’un seul client émulateur de terminal (comme PuTTY ) en stocke un certain nombre. ordinateurs cibles et des paramètres personnalisés (ou normalisés) pour chacun.

  2. PSExec

    • L'option originale pour l'exécution de commandes à distance sur une machine Windows via Windows CLIfait partie de l'excellente suite SysInternals . Les outils SysInternals étaient si largement respectés et utilisés que SyInternals a été racheté par Microsoft et les outils sont maintenant officiellement pris en charge par Microsoft.
    • Tout comme avec WinRS/ RM, PSExecpeut être utilisé pour émettre des commandes uniques sur un serveur distant ou pour lancer une instance interactive de cmd.exesur un ordinateur distant.
      • Comme avec: psexec \\myserver.mydomain.tld cmd
    • Comme pour les autres options, certaines étapes doivent être suivies pour s'assurer que PSExec est réellement capable de se connecter à la machine cible .

  3. Ajouter un dossier d’utilitaires sur le serveur et stocker sa valeur dans la variable système% PATH%

    • Comme il a été noté dans les commentaires, il existe de nombreux programmes SysInternals pouvant être exécutés sur la ligne de commande et destinés à un système distant. C’est vrai, mais pas seulement de SysInternals.
    • Fondamentalement, regroupez vos utilitaires Windows préférés dans un dossier que vous poussez sur tous vos serveurs et ajoutez ce dossier à la %PATH%variable d'environnement de vos systèmes . Les deux sont faciles à faire GPO.
    • Évidemment, ceci est utile pour plus que la gestion de systèmes Windows via CLI, mais je le trouve si utile que je pense que ça vaut la peine de l'inclure de toute façon.
HopelessN00b
la source
6
N'oubliez pas les autres outils PST, tels que PSList, PSKill, etc. PSExec n'est qu'une petite partie de cet ensemble d'outils et la plupart sont très sous-utilisés.
John Gardeniers
4
J'ajouterais également que plusieurs utilitaires de ligne de commande, tels que shutdownet iisreset(si IIS est installé), permettent à l'utilisateur de spécifier une machine à exécuter et peuvent donc être utilisés à distance.
Joshua Drake
1
Pourquoi n'avez-vous pas mentionné la fonctionnalité du serveur Telnet?
Abatishchev
3
@abatishchev Parce que personne ne devrait utiliser un serveur telnet pour quoi que ce soit de nos jours.
HopelessN00b
1
Fonctionne bien pour exécuter les commandes de la console correctement configuré et exécuté dans un environnement sécurisé.
Abatishchev
5

Par souci d’exhaustivité: bien que ce ne soit peut-être pas la meilleure solution pour diverses raisons, chaque système Windows prend en charge le service Telnet, qui peut être activé à partir de la liste des fonctionnalités.

L'implémentation telnet de Microsoft prend également en charge l'authentification NTLM. Ainsi, contrairement à Telnet standard sur un système Unix, aucun mot de passe en texte clair n'est envoyé sur le réseau lors de son utilisation.

Massimo
la source
Le serveur telnet a été supprimé de Windows 10
typelogic
utilisez-le uniquement si aucun autre moyen sécurisé n'est possible. le trafic devrait encore passer par un vpn sécurisé
mit