Modi per verificare se l'utente è attivo su una macchina remota prima di utilizzare RDP


24

Abbiamo una macchina Windows XP comune condivisa tra più utenti. Tutti usano un accesso al dominio comune per rdp in esso. Ora il problema è che a volte finiamo per assumere la sessione attiva di altre persone senza che nessuna delle parti venga avvisata (non viene emesso alcun avviso poiché utilizziamo lo stesso accesso).

Esiste un modo per verificare se l'utente attualmente connesso sul computer remoto è attivo (terminale bloccato?) Oppure no?

Non possiamo utilizzare VNC o LogMeIn o altre utilità di condivisione desktop per motivi di sicurezza (bloccati dall'IT).

Sto bene anche sviluppando alcune utility di test rapido (C #, C ++, scripting ecc.).

Modificare:

  1. Poiché stiamo utilizzando lo stesso login: gli utenti non si disconnettono, si limitano a disconnettere o bloccare il terminale.

2
Vorrei scoprire come fare esattamente la stessa cosa ma in ambiente Win7.
Dario il

@Dario, ho appena trovato la soluzione a questo. Non l'ho provato su W7 ma spero che funzioni anche per te.
YetAnotherUser

@Darius & YetAnotherUser: ho risposto di seguito: superuser.com/a/822743/430
Kevin Worthington

Risposte:


31

Possiamo usare qwinstaper Q uery WIN Dows STA zione e ottenere un elenco di tutte le sessioni attive.

Statecolonna indica se un utente è attivo o meno. Ciò richiede l'accesso dell'amministratore sul computer di destinazione.

Ottenuto su TechTalkz: come visualizzare / disconnettere le sessioni di desktop remoto dalla riga di comando

inserisci qui la descrizione dell'immagine


1
+1 È utile. Ho cercato di capire cosa ho usato in passato, ma non sono riuscito a capirlo. Penso che potrebbe essere stato psexec \\COMPUTERNAME net session. Puoi anche usare tsdisconper disconnetterti.
paradroid,

2

Simile alla risposta accettata puoi anche usare Query.execosì:

quser /server:<COMPUTERNAME>

Ciò comporterà quanto segue:

inserisci qui la descrizione dell'immagine


1
L'accesso è negato da un prompt dei comandi con privilegi elevati. Sto anche usando un account amministratore di dominio.
Shiv,

Ha funzionato bene per me controllando se il mio RDP-ing avrebbe avviato qualcuno da un server Win 2k8 R2. Lo stato era "Disc" (disconnesso), quindi posso eseguire RDP in sicurezza.
Adambean,

1

Crea un file BAT che genera un file su una condivisione dicendo che il computer è in uso. Quando un utente accede, viene eseguito e crea quel file. Quando un utente si disconnette (può essere eseguito dallo script GP), elimina il file. Controlla la condivisione per quel file prima di connetterti


1
Mi dispiace che avrei dovuto menzionare che, poiché stiamo utilizzando lo stesso login, gli utenti non si disconnettono, ma semplicemente disconnettono o bloccano il terminale.
YetAnotherUser

1

È possibile utilizzare il comando NET SEND per inviare un messaggio alla macchina per vedere se c'è qualcuno. Questo può essere reso più semplice utilizzando un'app GUI: il link di seguito è il primo gratuito che ho trovato facendo una ricerca sul Web, quindi arriva senza alcun sostegno specifico.

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/net_send.mspx

http://www.fomine.com/netsend.html


+1 - Net Send è una buona opzione. Richiede che un altro utente risponda per confermare che sta usando la macchina, e si dovrebbe inutilmente attendere 4-5 minuti prima di presumere che non sia in uso. Inoltre richiede che il servizio Messenger sia in esecuzione su tutti i sistemi, cosa non vera nel nostro caso.
YetAnotherUser

Va notato che NET SEND è stata una risposta corretta alla domanda, facendo riferimento a Windows XP, ma non è più per le versioni correnti di Windows, poiché SEND è stato rimosso da NET per evidenti problemi di abuso.
Sono con Monica, il

1

Un altro modo:

wmic.exe /node:<computername or IP address> computersystem get username

(testato su Windows 7)


Per curiosità, perché quando provo questo appare il messaggio di errore "Accesso negato"?
Dario,

Potresti non avere i privilegi di amministratore sul computer remoto.
Kevin Worthington,

Io sono un amministratore di rete, penso che dovrei ma mi hai indicato nella giusta direzione ....
Darius,

Questa è l'unica risposta elencata che ha dato la possibilità di specificare con quale utente connettersi al computer remoto. Gli altri sembrano funzionare solo se si è nello stesso dominio e in esecuzione come utente con accesso.
LeBleu,

0

Proprio come una FYI, so che ha più di un anno, ma anche se qualcuno ha i diritti di amministratore di dominio, ci sono criteri di Criteri di gruppo che potrebbero impedire a determinati account di amministratore (dominio, impresa, ecc.) Di accedere in remoto a un computer.

Questo per aiutare a proteggere le macchine che fanno parte di una posizione remota da essere amministrate in remoto da qualcuno più in alto nella struttura AD.

È possibile verificare se viene negato esaminando i report degli oggetti Criteri di gruppo per il computer locale in

                  gpreport /h report.html

da un prompt dei comandi amministrativo.


1
6 anni, ma chi conta
mic84
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.