د تصدۍ د قرنطین دورې په جریان کې ستونزه په لاندې ډول رامینځته شوه: دا واقعیا اړینه ده چې د غوښتنلیک سافټویر کې د خدماتو او مشورې ورکولو متخصصینو لخوا دفترونو ته د لیدنو شمیر کم کړئ ، او په ریښتیا سره ، کارونکي اکثرا د متخصصینو مرستې څخه ناوړه ګټه پورته کوي پرته لدې چې دوی ته اړتیا ولري. پخپله مسله ، دوی وايي "دوی به راشي - دوی به مرسته وکړي - دوی به دا وکړي ، مګر زه به سګرټ څښم / کافي څښم ، او داسې نور." د تلیفون مشوره کله چې د سرور شریکول خورا مؤثره دي که تاسو ریموټ سکرین وګورئ.

زموږ د بایسکل د "اختراع" وروسته، د مقالې موضوع په اړه هوښیار معلومات راپورته شول: او یا او یا . دا ټول د کنسول کارول شامل دي، حتی د ساده خبرو اترو عناصرو سره.
لاندې ټول معلومات د هغو کسانو لپاره دي چې په نورمال ډول غیر معمولي انحرافات زغمي د مطلوب پایلې ترلاسه کولو لپاره، د غیر ضروري میتودونو اختراع کول.
د دې لپاره چې "پیشو د لکۍ په واسطه راوباسئ" ، زه به له وروستي سره پیل وکړم: بایسکل د اوسط کارونکي لپاره د افادیت په کارولو سره کار کوي ، د کوم لپاره چې د دې لیکوال څخه مننه.
I. کنسول او سیوري RDP.
د کارولو راهیسې د سرور مدیر کنسول د مدیر حقونه -> QuickSessionCollection -> د ګټو کارونکي سیشن باندې کلیک کولو سره ، د شرایطو مینو څخه سیوري غوره کړئ د پرسونل لپاره چې د سافټویر کارولو څرنګوالی لارښوونه کوي، یو اختیار نه دی، یو بل "لرګي" طریقه په پام کې نیول شوې وه، یعنې:
1. د غونډې RDP ID ومومئ:
query user | findstr Administratorیا:
qwinsta | findstr Administrator سربیره پردې "| د مدیر موندلو"دا یوازې اسانه وه کله چې تاسو پوهیدل چې واقعیا څه Administrator تاسو اړتیا لرئ، یا یوازې لومړۍ برخه وکاروئ ترڅو وګورئ چې هرڅوک سرور ته ننوتل شوي.
![]()
2. دې غونډې ته وصل شئ، په دې شرط چې په ډومین کې وي ګروپ پالیسي "د ریموټ ډیسټاپ خدماتو د کاروونکو غونډو لپاره د ریموټ کنټرول مقررات تنظیم کړئ" انتخاب لږترلږه د "د کارونکي اجازې سره د نظارت ناستې" انتخاب سره غوره شوی ():
mstsc /shadow:127مهرباني وکړئ په یاد ولرئ چې لیست به یوازې د کارونکي ننوتل ولري.
زه تکراروم چې د اداري حقونو پرته به تاسو لاندې ترلاسه کړئ:

مګر د برنامه لومړني ډیبګ کولو لپاره چې بحث به پرې وشي ، ما د مدیر حقونو سره حساب کارولی.
II. پروګرام
نو د ستونزې بیان: د هغه اجازې سره د کارونکي سیوري احساس سره وصل کولو لپاره یو څه ساده ګرافیکي انٹرفیس رامینځته کول ، کارونکي ته پیغام لیږل. د پروګرام کولو چاپیریال غوره شوی لازار دی.
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. یو څو نور ډیزاینونه جوړ شوي، لکه د راډیو بټن په کلیک کولو سره ترتیب کول، او کارونکي یا ټولو کاروونکو ته پیغامونه.

→ بشپړ سرچینه کوډ لیدل کیدی شي
III. د AdminLink کارول - هغه څه چې ما ولیدل:
AdminLink یو شارټ کټ رامینځته کوي چې د کارونې موقعیت ته اشاره کوي admilaunch.exe، او د لانچ کارونې شخصي کاپي AdmiRun.Exe کوم چې د کاروونکي فولډر کې موقعیت لري، د بیلګې په توګه واساډول ج: کاروونکي وینډوز. په عموم کې ، هرڅه دومره خراب ندي: تاسو کولی شئ د شارټ کټ فایل او نورو ته د لاسرسي حقونو سره شاوخوا لوبې وکړئ ترڅو خپل اداري ضمیر پاک کړئ.
سرچینه: www.habr.com
