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.

Baada ya "uvumbuzi" wa baiskeli yetu, habari nzuri juu ya mada ya kifungu hicho iliibuka: au au . 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. , 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 Administratorau:
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.
![]()
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 ():
mstsc /shadow:127Tafadhali kumbuka kuwa orodha itakuwa na kumbukumbu za watumiaji pekee.
Narudia kwamba bila haki za admin utapata yafuatayo:

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.txtNitasema 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.

→ Msimbo kamili wa chanzo unaweza kuonekana
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
