Kev siv hluav taws xob rau tib neeg duab ntxoov ntxoo kev sib txuas ntawm cov tsis yog tus thawj coj rau RDP cov neeg siv zaug hauv WinServer 2012R2

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.

Kev siv hluav taws xob rau tib neeg duab ntxoov ntxoo kev sib txuas ntawm cov tsis yog tus thawj coj rau RDP cov neeg siv zaug hauv WinServer 2012R2

Tom qab "invention" ntawm peb lub tsheb kauj vab, cov ntaub ntawv zoo ntawm lub ncauj lus ntawm tsab xov xwm tau tig mus: RDS Duab Ntxoo - duab ntxoov ntxoo txuas rau RDP cov neeg siv ntu hauv Windows Server 2012 R2 los yog Unprivileged neeg siv duab ntxoov ntxoo hom hauv windows server los yog Delegating tswj ntawm RDP cov rooj sib tham. Txhua tus ntawm lawv koom nrog kev siv lub console, txawm tias muaj cov ntsiab lus ntawm kev sib tham yooj yim.

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. AdmiLink, uas ua tsaug rau nws tus sau.

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.

Kev siv hluav taws xob rau tib neeg duab ntxoov ntxoo kev sib txuas ntawm cov tsis yog tus thawj coj rau RDP cov neeg siv zaug hauv WinServer 2012R2

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 (ntau info):

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:

Kev siv hluav taws xob rau tib neeg duab ntxoov ntxoo kev sib txuas ntawm cov tsis yog tus thawj coj rau RDP cov neeg siv zaug hauv WinServer 2012R2

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.

Kev siv hluav taws xob rau tib neeg duab ntxoov ntxoo kev sib txuas ntawm cov tsis yog tus thawj coj rau RDP cov neeg siv zaug hauv WinServer 2012R2

β†’ Tag nrho qhov chaws tuaj yeem pom no

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

Ntxiv ib saib