Qhov teeb meem thaum lub sij hawm cais tawm ntawm lub tuam txhab tau dhau los ua cov hauv qab no: nws yog qhov tsim nyog kom txo qis tus naj npawb ntawm kev mus ntsib cov chaw ua haujlwm los ntawm cov kws tshaj lij kev pabcuam thiab kev sab laj ntawm daim ntawv thov software, thiab hais ncaj ncees, cov neeg siv feem ntau tsim txom kev pab los ntawm cov kws tshwj xeeb yam tsis xav delve rau hauv. qhov teeb meem nws tus kheej, lawv hais tias "lawv yuav los - lawv yuav pab - lawv yuav ua, tab sis kuv yuav haus luam yeeb / haus kas fes, thiab lwm yam." Kev sib tham hauv xov tooj thaum sib koom ib tus neeg rau zaub mov yuav ua tau zoo dua yog tias koj saib lub vijtsam tej thaj chaw deb.
Tom qab "invention" ntawm peb lub tsheb kauj vab, cov ntaub ntawv zoo ntawm lub ncauj lus ntawm tsab xov xwm tau tig mus:
Tag nrho cov ntaub ntawv hauv qab no yog npaj rau cov neeg uas tolerates txawv txav perversions ib txwm kom tau txais cov txiaj ntsig xav tau, tsim cov txheej txheem tsis tsim nyog.
Txhawm rau kom tsis txhob "rub tus miv los ntawm tus Tsov tus tw", Kuv yuav pib nrog qhov kawg: lub tsheb kauj vab ua haujlwm rau cov neeg siv nruab nrab siv cov khoom siv hluav taws xob.
I. Console thiab duab ntxoov ntxoo RDP.
Txij li thaum siv nrog cov cai tswj hwm ntawm Server Manager console -> QuickSessionCollection -> los ntawm txhaj rau ntawm qhov kev sib kho ntawm cov neeg siv kev txaus siab, xaiv Duab ntxoov ntxoo los ntawm cov ntawv qhia zaub mov rau cov neeg ua haujlwm qhia yuav ua li cas siv software, tsis yog ib qho kev xaiv, lwm txoj kev "ntoo" tau txiav txim siab, uas yog:
1. Nrhiav RDP id ntawm kev sib kho:
query user | findstr Administrator
lossis:
qwinsta | findstr Administrator
Ntxiv mus "| findstr Administrator"Nws tsuas yog yooj yim thaum koj paub qhov tseeb Administrator koj xav tau, lossis siv tsuas yog thawj ntu kom pom txhua tus neeg nkag rau hauv server.
2. Txuas mus rau qhov kev sib kho no, muab hais tias nyob rau hauv lub sau pab pawg txoj cai Cov kev xaiv "Tsim cov cai tswj chaw taws teeb rau cov neeg siv cov kev sib tham ntawm Chaw Taws Teeb Desktop" kev xaiv yog xaiv nrog tsawg kawg "Saib kev sib kho nrog tus neeg siv kev tso cai" xaiv xaiv (
mstsc /shadow:127
Thov nco ntsoov tias daim ntawv yuav tsuas muaj cov neeg siv nkag mus.
Kuv rov hais dua tias tsis muaj txoj cai admin koj yuav tau txais cov hauv qab no:
Tab sis rau kev debugging ua ntej ntawm qhov kev pab cuam uas yuav tau tham, kuv siv tus account nrog cov cai tswj hwm.
II. Program
Yog li cov lus hais txog teeb meem: tsim qee qhov yooj yim graphical interface los txuas rau tus neeg siv cov duab ntxoov ntxoo nrog nws kev tso cai, xa lus rau tus neeg siv. Qhov programming ib puag ncig xaiv yog Lazarus.
1. Peb tau txais daim ntawv teev npe tag nrho ntawm cov neeg siv "tus ID nkag mus" - "tag nrho lub npe" los ntawm tus thawj coj, lossis dua los ntawm console:
wmic useraccount get Name,FullName
tsis muaj leej twg txwv tau qhov no:
wmic useraccount get Name,FullName > c:testusername.txt
Kuv mam li hais tam sim ntawd tias nws yog Lazarus uas muaj teeb meem nrog kev ua cov ntaub ntawv no, txij li lub neej ntawd nws encoding yog UCS-2, yog li kuv tsuas yog yuav tsum tau hloov nws mus rau UTF-8 li niaj zaus. Muaj ntau cov tabs hauv cov qauv ntaub ntawv, lossis ntau qhov chaw, uas nws tau txiav txim siab los ua cov txheej txheem programmatically; sai lossis tom qab qhov teeb meem encoding yuav raug daws, thiab cov ntaub ntawv yuav raug kho tshiab programmatically.
Yog li, lub tswv yim yog kom muaj cov ntawv tais ceev tseg rau cov neeg siv ntawm qhov kev pab cuam, piv txwv li c: xeem, uas yuav muaj 2 cov ntaub ntawv: thawj zaug nrog tus ID nkag mus thiab lub npe puv, qhov thib ob nrog id_rdp thiab tus ID nkag mus ntawm cov neeg siv. Tom ntej no, peb ua cov ntaub ntawv no kom zoo tshaj plaws peb tuaj yeem ua tau :).
Nyob rau lub sijhawm no, txhawm rau koom nrog cov npe ntawm cov ntu, peb hloov qhov no (tus ID nkag mus thiab lub npe puv) cov ntsiab lus rau ib qho array:
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;
Kuv thov txim rau "ntau tus lej", cov ntsiab lus hauv qab no yuav ua kom luv dua.
2. Siv tib txoj kev los ntawm kab lus dhau los, peb nyeem cov txiaj ntsig ntawm kev ua cov npe rau hauv StringGrid caij, thaum kuv yuav muab ib qho "tseem ceeb" code:
2.1 Peb tau txais cov npe tam sim no ntawm RDP ntu hauv cov ntaub ntawv:
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 Txheej txheem cov ntaub ntawv (tsuas yog cov kab tseem ceeb ntawm txoj cai raug qhia):
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. Kev sib txuas ncaj qha nws tus kheej los ntawm txhaj rau ntawm kab nrog tus neeg siv thiab nws tus lej sib tham:
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. Muaj ob peb qhov kev kho kom zoo nkauj ntxiv, xws li kev txheeb xyuas los ntawm nias lub xov tooj cua, thiab cov lus rau tus neeg siv lossis txhua tus neeg siv.
β Tag nrho qhov chaws tuaj yeem pom
III. Siv AdminLink - qhov kuv pom:
AdminLink tsim ib qho shortcut uas hais txog qhov chaw ntawm qhov chaw siv hluav taws xob admilaunch.exe, thiab ib daim ntawv luam ntawm tus kheej ntawm cov khoom siv hluav taws xob AdmiRun.exe uas yog nyob rau hauv tus neeg siv lub nplaub tshev, piv txwv li Vasya, hom C:UsersvasyaWINDOWS. Feem ntau, tsis yog txhua yam phem heev: koj tuaj yeem ua si ib puag ncig nrog kev nkag mus rau cov ntaub ntawv luv thiab lwm tus kom tshem koj tus kheej lub siab.
Tau qhov twg los: www.hab.com