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:
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.
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.
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:127
Tafadhali 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.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.
β 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