Cum să comutați un utilizator de ferestre din linia de comandă

Combinația de taste Win + L este cunoscută de mulți, dar uneori este mai convenabil să comutați dialogul de utilizator ales. Opțiunile pentru implementarea unei astfel de comutări a utilizatorilor vor fi discutate în acest articol.

scop:

caracteristici:

Utilizatorii între care va avea loc schimbarea trebuie să se conecteze mai întâi la contul lor. De asemenea, problema securității nu este abordată. Vom presupune că au încredere reciprocă. În același timp, aceștia pot restricționa accesul unor terțe părți prin simpla apăsare a Win + L și a apelării dialogului de comutare a utilizatorilor (cu condiția ca parolele să fie disponibile în conturile lor).

Implementare:

De exemplu, în sistem există doi utilizatori: Ivanov și Petrov.

Pentru a comuta, trebuie să cunoașteți ID-ul sesiunilor utilizatorilor. Utilizăm linia de comandă și comanda utilizatorului de interogare (afișează informații despre sesiunile utilizatorilor pe serverul terminal).

Cum să comutați un utilizator de ferestre din linia de comandă

Comutarea este efectuată de comanda tscon (comanda pentru conectarea la sesiune către serverul terminal).

Rămâne doar să creați o comandă rapidă pe desktop-ul utilizatorului Petrov (faceți clic dreapta pe desktop → Creați comanda rapidă cu comanda

C: \ Windows \ System32 \ tscon.exe 1 / parola: 123

unde 1 este ID-ul sesiunii Ivanov. și 123 este parola acestuia).

Cum să comutați un utilizator de ferestre din linia de comandă

În mod similar, creați o comandă rapidă pe desktop-ul utilizatorului Ivanov (cu comanda

C: \ Windows \ System32 \ tscon.exe 2 / parola: 321

Cum să comutați un utilizator de ferestre din linia de comandă

Pentru a comuta de la tastatură, puteți seta o comandă rapidă pentru o comandă rapidă (de exemplu, Ctrl + Num 0)

Comutare normală (pentru claritate fără taste rapide):

Trecerea de la o comandă rapidă:

AutoIt-script:

Scriptul pentru automatizarea completă a procesului de comutare a utilizatorilor userswitch.zip.
Pentru a efectua sau a compila, trebuie să descărcați AutoIt.

#include #include #include $ Utilizatorii = ObjCreate ( "Scripting.Dictionary") $ users.Add ( "Ivanov", "123") $ users.Add ( "Petrov", "321") Local $ activeUserName local $ activeUserId local $ secondUserName local $ secondUserId Local $ quser = @WindowsDir "\ sysnative \ query user" Local $ tscon = @WindowsDir "\ Sysnative \ tscon" $ out = '' $ query = Run ($ QUSER, '', @SW_HIDE, $ STDOUT_CHILD) În timp ce 1 $ out = StdoutRead ($ query) Dacă @error Apoi ExitLoop Sleep (10) WEND $ out = _Encoding_866To1251 ($ out) $ arr = StringSplit ($ out, @CRLF, 1) $ i = 2 Pentru UBound ($ arr) - 2 $ username = StringStripWS (StringMid ($ arr [$ i], 1, 23), 1 + 2) $ userid = StringStripWS (StringMid (($ arr [$ i]), 43, 2), 1 + 2) dacă ( StringMid ($ username, 1,1) == ">") Apoi, $ username = StringMid ($ username, 2) $ activeUserName = $ username $ activeUserId = $ $ idutilizator Else secondUserName = $ username $ secondUserId = $ idutilizator endif Următorul Run ($ tscon „“ $ secondUserId "/ parola:" $ users.Item (StringLower ($ secondUserName)), '', @SW_HIDE)

Articole similare