Gestire un Server Terminal da Linea di Comando

Oltre che tramite lo snapin Terminal Services Manager, è possibile gestire un server terminal da linea di comando.

Vediamo più nel dettagli quali sono le operazioni possibile e come eseguirle.

Connettersi a un’altra sessione
Possiamo connetterci a un’altra sessione utilizzando tscon.
Tscon {IDSessione | NomeSessione} [/dest:NomeSessione] [/password:Password] [/v]
IDSessione – Id della sessione alla quale connettersi.
NomeSessione – Nome della sessione alla quale connettersi.
/dest:NomeSessione – Specifica il nome della sessione corrente.
/password:Password – Specifica la password dell’utente al quale appartiene la sessione alla quale connettersi.

Per connettersi alla sessione due potremmo quindi utilizzare il seguente comando
tscon 2

Disconnettere una sessione
Per disconnettere una sessione è possibile utilizzare tsdiscon
Tsdiscon [{IDSessione | NomeSessione}] [/server:NomeServer] [/v]
IDSessione – Id della sessione da disconnettere.
NomeSessione – Nome della sessione da disconnettere.
/Server:NomeServer – Il nome del server su cui deve essere disconnessa la sessione.

Per disconnettere la sessione due sul server Server1 potremmo quindi utilizzare il seguente comando
tsdiscon 2 /server:server1

Resettare una sessione
Possiamo resettare una sessione da linea di comando con reset session.
Reset session {NomeSessione | IDSessione} [/server:NomeServer] [/v]
IDSessione – Id della sessione da resettare.
NomeSessione – Nome della sessione da resettare.
/Server:NomeServer – Il nome del server su cui deve essere resettata la sessione.

Per resettare la sessione due sul server Server1 potremmo quindi utilizzare il seguente comando
Reset session /server:server1

Avviare e Arrestare terminal server
Per avviare e arrestare un terminal server da remoto è possibile utilizzare tsshutdn
Tsshutdn [TempoAttesa] [/server:NomeServer] [/reboot] [/powerdown] [/delay:RitardoDisconnessione] [/v]
TempoAttesa – Specifica il numero di secondi che devono passare prima che venga arrestato terminal server.
/server:NomeServer – Specifica il server su cui deve essere eseguita l’operazione.
/reboot – Riavvia terminal server dopo la chiusura delle sessioni.
/powerdown – Spegne il server se la funzione è supportata dal computer
/delay:RitardoDisconnessione – Specifica il numero di secondi che devono passare tra la disconnessione degli utenti e l’arresto di terminal server.

Per arrestare il server Server1 possiamo utilizzare
tsshutdn /server:Server1
Per riavviare il server Server1 possiamo utilizzare
tsshutdn /server:Server1 /reboot

Ottenere informazioni sulle sessioni
Per ottenere informazioni sulle sessioni possiamo utilizzare query
query process mostra le informazioni sui processi in esecuzione su un terminal server.
query process [{ * | ProcessID | UserName | SessionName | /id:SessionID | Program.exe}] [/server:ServerName]
* – Mostra i processi di tutte le sessioni.
ProcessID – Specifica l’id del processo da interrogare.
UserName – Specifica il nome dell’utente di cui vogliamo vedere i processi.
SessionName – Specifica il nome sessione di cui vogliamo vedere i processi.
/id:SessionID – Specifica l’id della sessione di cui vogliamo vedere i processi.
Program.exe – Specifica il nome del programma in esecuzione di cui si vogliono vedere le informazioni.
/server:ServerName – Specifica il terminal server

Query session mostra le informazioni sulle sessioni in esecuzione su un terminal server
query session [{NomeSessione | NomeUtente | IDSessione}] [/server:NomeServer] [/mode] [/flow] [/connect] [/counter]
NomeSessione – Nome della sessione per la quale richiedere informazioni.
NomeUtente – Nome dell’utente per le cui sessioni si desidera richiedere informazioni.
IDSessione – ID della sessione per la quale richiedere informazioni.
/server: NomeServer – Identifica il server terminal per il quale richiedere informazioni. L’impostazione predefinita è il server corrente.
/mode – Visualizza le impostazioni correnti sulla linea.
/flow – Visualizza le impostazioni correnti sul controllo di flusso.
/connect – Visualizza le impostazioni correnti sulla connessione.
/counter – Visualizza le informazioni correnti sui contatori, compreso il numero totale di sessioni create, disconnesse e riconnesse.

Query termserver mostra i server terminal presenti nella rete
query termserver [NomeServer] [/domain:Dominio] [/address] [/continue]
NomeServer – Specifica il nome del server terminal.
/domain: Dominio – Specifica il dominio in cui richiedere informazioni per i server terminal. Non è necessario specificare un dominio, se le informazioni vengono richieste nel dominio corrente.
/address – Visualizza gli indirizzi di rete e di nodo di ciascun server.
/continue – Disattiva la pausa tra una schermata e l’altra di informazioni visualizzate.

Query user mostra le informazioni sulle sessioni in esecuzione su un server terminal
query user [{NomeUtente | NomeSessione | IDSessione}] [/server:NomeServer]
NomeUtente – Specifica il nome di accesso dell’utente su cui richiedere informazioni.
NomeSessione – Specifica il nome della sessione su cui richiedere informazioni.
IDSessione – Specifica l’ID della sessione su cui richiedere informazioni.
/server: NomeServer – Specifica il server terminal su cui richiedere informazioni. Altrimenti, verrà utilizzato il server terminal corrente.

Terminare i processi di una sessione
Per terminare i processi in esecuzione su una sessione di un server terminal è possibile utilizzare tskill
Tskill {IDProcesso | NomeProcesso} [/server:NomeServer] [{/id:IDSessione | /a}] [/v]
IDProcesso – ID del processo da terminare.
NomeProcesso – Nome del processo da terminare. Per questo parametro è possibile utilizzare caratteri jolly.
/server:NomeServer – Specifica il server terminal contenente il processo da terminare. Altrimenti, verrà utilizzato il server terminal corrente.
/id:IDSessione – Termina il processo in esecuzione nella sessione specificata.
/a – Termina il processo in esecuzione in tutte le sessioni.