Huduma ya uunganisho wa kivuli cha binadamu cha asiye msimamizi kwa vikao vya watumiaji wa RDP katika WinServer 2012R2

Shida wakati wa kuwekewa dhamana ya biashara ikawa ifuatayo: inahitajika kupunguza idadi ya matembezi ya ofisi na wataalam wanaohudumia na kushauriana juu ya programu ya maombi, na kusema ukweli, watumiaji mara nyingi hutumia vibaya msaada wa wataalam bila kutaka kutafakari. suala lenyewe, wanasema "watakuja - watasaidia - watafanya hivyo, lakini nitavuta/kunywa kahawa, nk." Ushauri wa simu unaposhiriki seva ni mzuri zaidi ikiwa unatazama skrini ya mbali.

Huduma ya uunganisho wa kivuli cha binadamu cha asiye msimamizi kwa vikao vya watumiaji wa RDP katika WinServer 2012R2

Baada ya "uvumbuzi" wa baiskeli yetu, habari nzuri juu ya mada ya kifungu hicho iliibuka: Kivuli cha RDS - muunganisho wa kivuli kwa vikao vya watumiaji wa RDP katika Windows Server 2012 R2 au Hali ya kivuli cha mtumiaji asiye na usalama kwenye seva ya windows au Kukasimu usimamizi wa vikao vya RDP. Zote zinahusisha matumizi ya console, hata na vipengele vya mazungumzo rahisi.

Taarifa zote hapa chini zimekusudiwa wale ambao huvumilia upotovu usio wa kawaida kwa kawaida kupata matokeo yaliyohitajika, uvumbuzi wa njia zisizo za lazima.
Ili sio "kuvuta paka kwa mkia", nitaanza na ya mwisho: baiskeli inafanya kazi kwa mtumiaji wa kawaida anayetumia matumizi. AdmiLink, ambayo shukrani kwa mwandishi wake.

I. Console na kivuli RDP.

Tangu kutumia na haki za msimamizi wa kiweko cha Kidhibiti cha Seva -> QuickSessionCollection -> kwa kubofya kikao cha mtumiaji anayevutiwa, kuchagua Kivuli kutoka kwa menyu ya muktadha. kwa wafanyikazi wanaoelekeza jinsi ya kutumia programu, sio chaguo, njia nyingine ya "mbao" ilizingatiwa, ambayo ni:

1. Jua kitambulisho cha RDP cha kikao:

query user | findstr Administrator

au:

qwinsta | findstr Administrator 

Aidha "| findstr Msimamizi"Ilikuwa rahisi tu wakati ulijua nini hasa msimamizi unahitaji, au tumia sehemu ya kwanza tu kuona kila mtu ameingia kwenye seva.

Huduma ya uunganisho wa kivuli cha binadamu cha asiye msimamizi kwa vikao vya watumiaji wa RDP katika WinServer 2012R2

2. Unganisha kwenye kipindi hiki, mradi tu kwenye kikoa sera za kikundi Chaguo la "Weka sheria za udhibiti wa kijijini kwa vipindi vya watumiaji wa Huduma za Kompyuta ya Mbali" huchaguliwa na angalau chaguo la "Kufuatilia kwa ruhusa ya mtumiaji" limechaguliwa (zaidi):

mstsc /shadow:127

Tafadhali kumbuka kuwa orodha itakuwa na kumbukumbu za watumiaji pekee.

Narudia kwamba bila haki za admin utapata yafuatayo:

Huduma ya uunganisho wa kivuli cha binadamu cha asiye msimamizi kwa vikao vya watumiaji wa RDP katika WinServer 2012R2

Lakini kwa utatuzi wa awali wa programu ambayo itajadiliwa, nilitumia akaunti iliyo na haki za msimamizi.

II. Mpango

Kwa hivyo taarifa ya shida: kuunda kiolesura rahisi cha picha ili kuunganishwa na hisia ya kivuli ya mtumiaji kwa idhini yake, kutuma ujumbe kwa mtumiaji. Mazingira ya programu yaliyochaguliwa ni Lazaro.

1. Tunapata orodha kamili ya kikoa ya watumiaji "kuingia" - "jina kamili" kutoka kwa msimamizi, au tena kupitia koni:

wmic useraccount get Name,FullName 

hakuna anayekataza hata hili:

wmic useraccount get Name,FullName > c:testusername.txt

Nitasema mara moja kwamba ni Lazaro ambaye alikuwa na shida na usindikaji wa faili hii, kwani kwa chaguo-msingi usimbaji wake ni UCS-2, kwa hivyo nililazimika kuibadilisha kwa UTF-8 kwa kawaida. Kuna tabo nyingi katika muundo wa faili, au tuseme nafasi nyingi, ambazo iliamuliwa kusindika kwa utaratibu; mapema au baadaye shida ya usimbuaji itatatuliwa, na faili itasasishwa kwa utaratibu.

Kwa hivyo, wazo ni kuwa na folda inayopatikana kwa watumiaji wa programu, kwa mfano c: test, ambayo kutakuwa na faili 2: ya kwanza na kuingia na jina kamili, ya pili na id_rdp na kuingia kwa watumiaji. Kisha, tunachakata data hii kadri tuwezavyo :).

Wakati huo huo, ili kuhusisha na orodha ya vipindi, tunahamisha maudhui haya (ya kuingia na jina kamili) kwenye safu:

procedure Tf_rdp.UserF2Array;
var 
  F:TextFile;   i:integer;   f1, line1:String;   fL: TStringList;
begin //f_d Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² 
f1:=f_d+'user_name.txt';     //Π·Π°Π΄Π°Ρ‡Π° ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² массив содСрТимоС Ρ„Π°ΠΉΠ»Π°
fL := TStringList.Create; // строку ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½Π΅ΠΌ ΠΌΠ΅Ρ‚Π°ΠΌΠ°Ρ€Ρ„ΠΎΠ·Π°ΠΌ с раздСлитСлями
fL.Delimiter := '|'; fL.StrictDelimiter := True;
AssignFile(F,f1); 
try // ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» для чтСния
  reset(F); ReadLn(F,line1);
  i:=0;
while not eof(F) do // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ строки, ΠΏΠΎΠΊΠ° Π½Π΅ закончится Ρ„Π°ΠΉΠ»
begin
ReadLn(F,line1);
line1:= StringReplace(line1, '  ', '|',[]); //замСняСм ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ попавш.2ΠΏΡ€ΠΎΠ±Π΅Π»Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ |
// удаляСм всС Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹
while pos('  ',line1)>0 do line1:= StringReplace(line1, '  ', ' ', [rfReplaceAll]);
begin
if (pos('|',line1)>0) then
begin //Ссли Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ сущСствуСт заносим Π΅Π³ΠΎ Π² массив
fL.DelimitedText :=line1; // Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π½Π° столбцы
if (fL[0]<>'') then //Ссли ΡƒΡ‡Π΅Ρ‚ΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ имя
begin //вносим СС в массив
 inc(i); // избавляСмся ΠΎΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π² Π»ΠΎΠ³ΠΈΠ½Π΅
 fam[0,i]:=StringReplace(fL[1],' ','',[rfReplaceall, rfIgnoreCase]);
 fam[1,i]:=fL[0];
 end;end;end;end; // Π“ΠΎΡ‚ΠΎΠ²ΠΎ. Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ».
 CloseFile(F);
 Fl.Free;
 except
 on E: EInOutError do  ShowMessage('Ошибка ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»Π°. Π”Π΅Ρ‚Π°Π»ΠΈ: '+E.Message);
 end;end;

Ninaomba msamaha kwa "msimbo mwingi", pointi zifuatazo zitakuwa mafupi zaidi.

2. Kwa kutumia njia ile ile kutoka kwa aya iliyotangulia, tunasoma matokeo ya kuchakata orodha kwenye kipengee cha StringGrid, wakati nitatoa kipande cha msimbo "muhimu":

2.1 Tunapokea orodha ya sasa ya vikao vya RDP katika faili:

f1:=f_d+'user.txt';
cmdline:='/c query user >'+ f1;
if ShellExecute(0,nil, PChar('cmd'),PChar(cmdline),nil,1)=0 then;
Sleep(500); // ΠΌΠΎΠΆΠ½ΠΎ ΠΈ подольшС ΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ° Ρ„Π°ΠΉΠ» для чтСния создаСтся

2.2 Sindika faili (laini muhimu pekee ndizo zimeonyeshwa):

StringGrid1.Cells[0,i]:=fL[1]; StringGrid1.Cells[2,i]:=fL[3]; //ΠΊΠΈΠ΄Π°Π΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅ Π² StringGrid1
login1:=StringReplace(fL[1],' ','',[rfReplaceall, rfIgnoreCase]); //ΡƒΠ±ΠΈΡ€Π°Π΅ΠΌ ΠΈΠ· Π»ΠΎΠ³ΠΈΠ½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹
if (SearchArr(login1)>=0) then //ΠΈΡ‰Π΅ΠΌ Π² массивС ΠΈΠ· ΠΏ1. Π»ΠΎΠ³ΠΈΠ½ ΠΈ записываСм Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ЀИО
StringGrid1.Cells[1,i]:=fam[1,SearchArr(login1)]
else StringGrid1.Cells[1,i]:='+'; // Π»ΠΈΠ±ΠΎ записываСм плюсик:)
.... //Π² зависимости ΠΎΡ‚ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ сортируСм ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ
if (b_id.Checked=true) then SortGrid(0) else SortGrid(1);
StringGrid1.AutoSizeColumn(0);StringGrid1.AutoSizeColumn(1); StringGrid1.AutoSizeColumn(2);  

3. Muunganisho wa moja kwa moja yenyewe kwa kubofya kwenye mstari na mtumiaji na nambari yake ya kikao:

  id:=(StringGrid1.Row);// ΡƒΠ·Π½Π°Π΅ΠΌ Π½ΠΎΠΌΠ΅Ρ€ строки  IntToStr(StringGrid1.Row)
  ids:=StringGrid1.Cells[2,id]; //ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ rdp
  cmdline:='/c mstsc /shadow:'+ ids; //ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ....
 if (b_rdp.Checked=True) then  if ShellExecute(0,nil, PChar('cmd'),PChar(cmdline),nil,1) =0 then;       

4. Mapambo kadhaa zaidi yamefanywa, kama vile kupanga kwa kubofya kitufe cha redio, na ujumbe kwa mtumiaji au watumiaji wote.

Huduma ya uunganisho wa kivuli cha binadamu cha asiye msimamizi kwa vikao vya watumiaji wa RDP katika WinServer 2012R2

β†’ Msimbo kamili wa chanzo unaweza kuonekana hapa

III. Kutumia AdminLink - nilichokiona:

AdminLink haitoi njia ya mkato inayorejelea eneo la matumizi admilaunch.exe, na nakala ya kibinafsi ya matumizi ya uzinduzi AdmiRun.Exe ambayo iko kwenye folda ya mtumiaji, kwa mfano Vasya, aina C:WersvasyaWINDOWS. Kwa ujumla, sio kila kitu ni kibaya sana: unaweza kucheza na haki za ufikiaji wa faili ya njia ya mkato na wengine kufuta dhamiri yako ya msimamizi.

Chanzo: mapenzi.com

Kuongeza maoni