WinServer 2012R2 හි RDP පරිශීලක සැසිවලට පරිපාලක නොවන මානව සෙවනැලි සම්බන්ධ කිරීම සඳහා උපයෝගීතාව

ව්යවසායයේ නිරෝධායන කාල සීමාව තුළ ඇති ගැටළුව පහත පරිදි විය: යෙදුම් මෘදුකාංග සේවා සහ උපදේශන විශේෂඥයින් විසින් කාර්යාල වෙත පැමිණීම අවම කිරීම සැබැවින්ම අවශ්ය වන අතර, අවංකව කිවහොත්, පරිශීලකයින් බොහෝ විට විශේෂඥයින්ගේ උපකාරය අනිසි ලෙස භාවිතා කරයි. ප්‍රශ්නය ම, ඔවුන් පවසන්නේ "ඔවුන් එනු ඇත - ඔවුන් උදව් කරනු ඇත - ඔවුන් එය කරනු ඇත, නමුත් මම දුම් පානය කරන්නෙමි / කෝපි බොන්නෙමි, ආදිය." ඔබ දුරස්ථ තිරය නරඹන්නේ නම් සේවාදායකයක් බෙදාගැනීමේදී දුරකථන උපදේශනය වඩාත් ඵලදායී වේ.

WinServer 2012R2 හි RDP පරිශීලක සැසිවලට පරිපාලක නොවන මානව සෙවනැලි සම්බන්ධ කිරීම සඳහා උපයෝගීතාව

අපගේ බයිසිකලයේ "නව නිපැයුම්" වලින් පසුව, ලිපියේ මාතෘකාව පිළිබඳ හොඳ තොරතුරු: RDS Shadow – Windows Server 2012 R2 හි RDP පරිශීලක සැසි වෙත සෙවනැලි සම්බන්ධතාවය හෝ වින්ඩෝස් සේවාදායකයේ වරප්‍රසාද රහිත පරිශීලක සෙවන ප්‍රකාරය හෝ RDP සැසි කළමනාකරණය පැවරීම. ඒවා සියල්ලම සරල සංවාදයක අංග සමඟ වුවද කොන්සෝලයක් භාවිතා කිරීම ඇතුළත් වේ.

පහත සියලුම තොරතුරු එම අය සඳහා අදහස් කෙරේ සාමාන්යයෙන් අසාමාන්ය විකෘති ඉවසයි අපේක්ෂිත ප්රතිඵලය ලබා ගැනීම සඳහා, අනවශ්ය ක්රම නිර්මාණය කිරීම.
“බළලා වලිගයෙන් අදින්න” නොකිරීමට, මම අන්තිම එක සමඟ ආරම්භ කරමි: බයිසිකලය උපයෝගිතා භාවිතා කරන සාමාන්‍ය පරිශීලකයින් සඳහා ක්‍රියා කරයි AdmiLink, ඒ සඳහා එහි කතුවරයාට ස්තුතියි.

I. කොන්සෝලය සහ සෙවනැලි RDP.

සමඟ භාවිතා කරන බැවින් සේවාදායක කළමනාකරු කොන්සෝලයේ පරිපාලක අයිතිවාසිකම් -> QuickSessionCollection -> උනන්දුවක් දක්වන පරිශීලකයාගේ සැසිය මත ක්ලික් කිරීමෙන්, සන්දර්භය මෙනුවෙන් සෙවනැල්ල තේරීමෙන් මෘදුකාංගය භාවිතා කරන ආකාරය උපදෙස් දෙන පිරිස් සඳහා, විකල්පයක් නොවේ, තවත් "ලී" ක්රමයක් සලකා බලන ලදී, එනම්:

1. සැසියේ RDP හැඳුනුම්පත සොයා ගන්න:

query user | findstr Administrator

හෝ:

qwinsta | findstr Administrator 

තව "| findstr පරිපාලක"එය පහසු වූයේ ඔබ හරියටම කුමක්දැයි දැනගත් විට පමණි පරිපාලක ඔබට අවශ්‍ය වේ, නැතහොත් සේවාදායකයට ලොග් වී ඇති සියල්ලන් බැලීමට පළමු කොටස පමණක් භාවිතා කරන්න.

WinServer 2012R2 හි RDP පරිශීලක සැසිවලට පරිපාලක නොවන මානව සෙවනැලි සම්බන්ධ කිරීම සඳහා උපයෝගීතාව

2. වසම තුළ සපයා ඇති මෙම සැසියට සම්බන්ධ වන්න කණ්ඩායම් ප්රතිපත්ති "දුරස්ථ ඩෙස්ක්ටොප් සේවාවන්හි පරිශීලක සැසි සඳහා දුරස්ථ පාලක රීති සකසන්න" විකල්පය තෝරාගෙන ඇත්තේ අවම වශයෙන් "පරිශීලක අවසරය සහිත අධීක්ෂණ සැසිය" විකල්පය සමඟින් තෝරාගෙන ඇත (වැඩි විස්තර):

mstsc /shadow:127

ලැයිස්තුවේ අඩංගු වන්නේ පරිශීලක පිවිසුම් පමණක් බව කරුණාවෙන් සලකන්න.

පරිපාලක අයිතිවාසිකම් නොමැතිව ඔබට පහත සඳහන් දෑ ලැබෙනු ඇති බව මම නැවත නැවතත් කියමි:

WinServer 2012R2 හි RDP පරිශීලක සැසිවලට පරිපාලක නොවන මානව සෙවනැලි සම්බන්ධ කිරීම සඳහා උපයෝගීතාව

නමුත් සාකච්ඡා කරනු ලබන වැඩසටහනේ මූලික නිදොස්කරණය සඳහා, මම පරිපාලක අයිතිවාසිකම් සහිත ගිණුමක් භාවිතා කළෙමි.

II. වැඩසටහන

එබැවින් ගැටළු ප්‍රකාශය: පරිශීලකයාගේ අවසරය ඇතිව පරිශීලකයාගේ සෙවනැලි හැඟීමට සම්බන්ධ වීමට සරල චිත්‍රක අතුරු මුහුණතක් නිර්මාණය කිරීම, පරිශීලකයාට පණිවිඩයක් යැවීම. තෝරාගත් වැඩසටහන් පරිසරය Lazarus වේ.

1. අපි පරිශීලකයින්ගේ සම්පූර්ණ වසම් ලැයිස්තුව “පිවිසුම්” - “සම්පූර්ණ නම” පරිපාලකගෙන් හෝ නැවත කොන්සෝලය හරහා ලබා ගනිමු:

wmic useraccount get Name,FullName 

කිසිවෙකු මෙය පවා තහනම් නොකරයි:

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

පෙරනිමියෙන් එහි කේතනය UCS-2 බැවින් මට එය සාමාන්‍ය UTF-8 බවට පරිවර්තනය කිරීමට සිදු වූ බැවින් මෙම ගොනුව සැකසීමේ ගැටලුවක් ඇති වූයේ ලාසරස්ට බව මම වහාම කියමි. ගොනු ව්‍යුහයේ ටැබ් විශාල ප්‍රමාණයක් ඇත, නැතහොත් බොහෝ ඉඩ ප්‍රමාණයක් ඇත, ඒවා ක්‍රමලේඛනගතව සැකසීමට තීරණය කරන ලදී; ඉක්මනින් හෝ පසුව කේතීකරණ ගැටළුව විසඳනු ඇති අතර ගොනුව ක්‍රමලේඛනගතව යාවත්කාලීන වේ.

එබැවින්, අදහස වන්නේ වැඩසටහනේ පරිශීලකයින්ට ප්‍රවේශ විය හැකි ෆෝල්ඩරයක් තිබීමයි, උදාහරණයක් ලෙස c:test, එහි ගොනු 2 ක් ඇත: පළමුවැන්න පිවිසුම සහ සම්පූර්ණ නම සමඟ, දෙවැන්න id_rdp සහ පරිශීලකයින්ගේ පිවිසුම සමඟ. මීළඟට, අපි මෙම දත්ත අපට හැකි පරිදි සකස් කරමු :).

මේ අතරතුර, සැසි ලැයිස්තුව සමඟ සම්බන්ධ වීමට, අපි මෙම (පිවිසුම් සහ සම්පූර්ණ නම) අන්තර්ගතය අරාවකට මාරු කරමු:

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;

"කේත ගොඩක්" සඳහා මම සමාව අයදිමි, පහත කරුණු වඩාත් සංක්ෂිප්ත වනු ඇත.

2. පෙර ඡේදයෙන් එකම ක්‍රමය භාවිතා කරමින්, අපි ලැයිස්තුව StringGrid මූලද්‍රව්‍යයට සැකසීමේ ප්‍රතිඵලය කියවන අතර, මම “සැලකිය යුතු” කේතයක් ලබා දෙමි:

2.1 ගොනුවක වත්මන් RDP සැසි ලැයිස්තුව අපට ලැබේ:

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 ගොනුව සකසන්න (සැලකිය යුතු කේත රේඛා පමණක් දක්වා ඇත):

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. පරිශීලකයා සහ ඔහුගේ සැසි අංකය සහිත රේඛාව මත ක්ලික් කිරීමෙන් සෘජු සම්බන්ධතාවය:

  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. රේඩියෝ බොත්තම මත ක්ලික් කිරීමෙන් වර්ග කිරීම සහ පරිශීලකයාට හෝ සියලුම පරිශීලකයින්ට පණිවිඩ යැවීම වැනි තවත් සැරසිලි කිහිපයක් සාදා ඇත.

WinServer 2012R2 හි RDP පරිශීලක සැසිවලට පරිපාලක නොවන මානව සෙවනැලි සම්බන්ධ කිරීම සඳහා උපයෝගීතාව

→ සම්පූර්ණ මූල කේතය දැකිය හැක මෙහි

III. AdminLink භාවිතා කිරීම - මා දුටු දේ:

AdminLink උපයෝගිතා ස්ථානය සඳහන් කරන කෙටිමඟක් ජනනය කරයි admilaunch.exe, සහ දියත් කිරීමේ උපයෝගීතාවයේ පුද්ගලික පිටපතක් AdmiRun.Exe උදාහරණයක් ලෙස, පරිශීලකයාගේ ෆෝල්ඩරයේ පිහිටා ඇත Vasya, වර්ගය C:UservasyaWINDOWS. පොදුවේ ගත් කල, සෑම දෙයක්ම එතරම් නරක නැත: ඔබට ඔබේම පරිපාලක හෘදය සාක්ෂිය ඉවත් කිරීමට කෙටිමං ගොනුව සහ වෙනත් අය වෙත ප්‍රවේශ අයිතිවාසිකම් සමඟ සෙල්ලම් කළ හැකිය.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න