Come posso connettermi a un server Windows usando un'interfaccia a riga di comando? (CLI)


90

Soprattutto con l'opzione di installare Server Core in Server 2008 e versioni successive, connettersi ai server Windows tramite CLIun'abilità sempre più utile, se non una che è molto diffusa tra gli amministratori di Windows.

Praticamente ogni GUIstrumento di gestione di Windows ha un'opzione per connettersi a un computer remoto, ma non è presente tale opzione in Windows CLI( cmd.exe), che dà l'impressione iniziale che ciò potrebbe non essere possibile.

È possibile gestire in remoto o amministrare un server Windows utilizzando una CLI? E se sì, quali opzioni ci sono per raggiungere questo obiettivo?

Risposte:


102

Sono disponibili diverse opzioni abbastanza semplici per la gestione remota di un server Windows remoto tramite una riga di comando, incluse alcune opzioni native.

Opzioni native

  1. Windows Remote Shell / Gestione remota Windows

    • Lo strumento di gestione / shell remota di Windows è il modo più semplice per gestire in remoto un server Windows remoto in un'utilità della riga di comando e, come con la maggior parte delle utilità della riga di comando di Windows, ss64 ha una buona pagina in termini di opzioni e sintassi .
    • Sebbene non sia esplicitamente indicato nella documentazione di Microsoft, questo può essere utilizzato per avviare un'istanza remota di cmd.exe, che crea una riga di comando interattiva sul sistema remoto, anziché come opzione di riga di comando per eseguire un singolo comando su un server remoto.
      • Come con: winrs -r:myserver.mydomain.tld cmd
    • Questa è anche l'opzione supportata in modo nativo che sarà probabilmente più familiare agli amministratori di altri sistemi (* nix BSD, ecc.) CLIBasati principalmente .

  2. PowerShell

  3. Desktop remoto

    • Probabilmente non è esattamente la prima cosa che viene in mente come CLIopzione Window , ma ovviamente l'utilizzo mstsc.exeper connettersi a un server tramite Remote Desktop Protocl ( RDP) abilita l'uso di una riga di comando sul server remoto.
    • La connessione a un'installazione Server Core tramite RDP, è effettivamente possibile e fornirà la stessa interfaccia della connessione alla console - un'istanza di cmd.exe.

Opzioni popolari, non native:

Anche se Windows ora fornisce alcune opzioni native per accedere a un server remoto su un server CLI, questo non è sempre stato il caso e, di conseguenza, sono state create una serie di soluzioni di terze parti piuttosto popolari. I tre più importanti sono di seguito.

  1. Installa SSH sul tuo Windows Server

    • Se proprio devi avere SSH, anche questa è un'opzione e c'è una guida su social.technet su come installare OpenSSH su Server 2008.
    • Probabilmente più utile per gli amministratori di altri sistemi (* nix, BSDecc.) Che fanno un uso intenso SSHa questo scopo, anche se ci sono vantaggi anche per gli amministratori solo di Windows che un singolo client di emulazione di terminale (come PuTTY ) memorizza un numero di computer di destinazione e impostazioni personalizzate (o standardizzate) per ciascuno.

  2. PSExec

    • L'opzione originale per eseguire comandi remoti su una finestra di Windows tramite Windows CLI, fa parte dell'eccellente suite SysInternals . Uno dei pochissimi pacchetti "must have" per gli amministratori di Windows, gli strumenti SysInternals sono stati così ampiamente rispettati e utilizzati che SyInternals è stato acquistato da Microsoft e gli strumenti sono ora in qualche modo supportati ufficialmente da Microsoft.
    • Proprio come con WinRS/ RM, PSExecpuò essere utilizzato per inviare singoli comandi a un server remoto o per avviare un'istanza interattiva cmd.exesu un computer remoto.
      • Come con: psexec \\myserver.mydomain.tld cmd
    • Come per le altre opzioni, ci sono alcuni passaggi che è necessario eseguire per garantire che PSExec sia effettivamente in grado di connettersi al computer di destinazione .

  3. Aggiungi una cartella delle utility al server e memorizza il suo valore nella variabile di sistema% PATH%

    • Come è stato notato nei commenti, ci sono molti buoni programmi SysInternals che possono essere eseguiti dalla riga di comando e indirizzati a un sistema remoto, e questo vale più di un semplice SysInternals.
    • Fondamentalmente, raggruppa un pacchetto delle tue utility di Windows preferite in una cartella che invii a tutti i tuoi server e aggiungi quella cartella alla %PATH%variabile ambientale dei tuoi sistemi . Entrambi sono facilmente fattibili GPO.
    • Ovviamente, questo è utile per qualcosa di più della semplice gestione dei sistemi Windows tramite CLI, ma lo trovo così utile penso che valga la pena includerlo comunque.

6
Non dimenticare le altre PSTools, come PSList, PSKill, ecc. PSExec è solo una piccola parte di quel set di strumenti e la maggior parte è molto poco utilizzata.
John Gardeniers,

4
Vorrei anche aggiungere che diverse utility da riga di comando come shutdowne iisreset(se IIS è installato) che consentono di specificare una macchina su cui eseguire e che possono quindi essere utilizzate in remoto.
Joshua Drake,

1
Perché non hai menzionato la funzione Server Telnet?
abatishchev,

3
@abatishchev Perché nessuno dovrebbe eseguire un server Telnet per nulla al giorno d'oggi.
HopelessN00b,

1
Funziona bene per eseguire i comandi della console quando configurato correttamente ed eseguito in un ambiente protetto.
abatishchev,

5

Solo per completezza: anche se potrebbe non essere la soluzione migliore per vari motivi, ogni sistema Windows supporta il servizio Telnet, che può essere abilitato dall'elenco delle funzionalità.

L'implementazione di Microsoft Telnet supporta anche l'autenticazione NTLM, quindi, a differenza di Telnet standard a un sistema Unix, nessuna password in chiaro viene inviata sulla rete quando la si utilizza.


il server telnet è stato rimosso in Windows 10
typelogic

usare questo solo se non è possibile nessun altro modo sicuro. il traffico dovrebbe comunque passare attraverso un vpn sicuro
mit
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.