IwUlO fun asopọ ojiji eniyan ti kii ṣe alabojuto si awọn akoko olumulo RDP ni WinServer 2012R2

Iṣoro naa lakoko akoko ipinya ti ile-iṣẹ di atẹle: o jẹ pataki gaan lati dinku nọmba awọn ọdọọdun si awọn ọfiisi nipasẹ awọn alamọja ti n ṣiṣẹ ati ijumọsọrọ lori sọfitiwia ohun elo, ati ni sisọ otitọ, awọn olumulo nigbagbogbo lo iranlọwọ ti awọn alamọja laisi ifẹ lati lọ sinu. Ọrọ naa funrararẹ, wọn sọ pe “wọn yoo wa - wọn yoo ṣe iranlọwọ - wọn yoo ṣe, ṣugbọn Emi yoo mu / mu kọfi, ati bẹbẹ lọ.” Ijumọsọrọ tẹlifoonu nigbati pinpin olupin jẹ doko diẹ sii ti o ba wo iboju latọna jijin.

IwUlO fun asopọ ojiji eniyan ti kii ṣe alabojuto si awọn akoko olumulo RDP ni WinServer 2012R2

Lẹhin “ipilẹṣẹ” ti keke wa, alaye ti o ni oye lori koko ọrọ naa wa: Ojiji RDS – asopọ ojiji si awọn akoko olumulo RDP ni Windows Server 2012 R2 tabi Ipo ojiji olumulo ti ko ni anfani ni olupin windows tabi Aṣoju iṣakoso ti awọn akoko RDP. Gbogbo wọn jẹ pẹlu lilo console, paapaa pẹlu awọn eroja ti ibaraẹnisọrọ rọrun.

Gbogbo alaye ni isalẹ ti wa ni ti a ti pinnu fun awon ti o fi aaye gba awọn aiṣedeede ajeji deede lati gba abajade ti o fẹ, ṣiṣẹda awọn ọna ti ko wulo.
Ni ibere ki o má ba "fa ologbo naa nipasẹ iru", Emi yoo bẹrẹ pẹlu eyi ti o kẹhin: keke naa ṣiṣẹ fun olumulo apapọ nipa lilo ohun elo. AdmiLink, fun eyiti o ṣeun si onkọwe rẹ.

I. Console ati ojiji RDP.

Niwon lilo pẹlu IT awọn ẹtọ ti awọn Server Manager console -> QuickSessionCollection -> nipa tite lori igba ti olumulo ti iwulo, yiyan Shadow lati inu akojọ ọrọ-ọrọ fun eniyan ti nkọ bi o ṣe le lo sọfitiwia naa, kii ṣe aṣayan, ọna “igi” miiran ni a gbero, eyun:

1. Wa ID RDP ti igba naa:

query user | findstr Administrator

tabi:

qwinsta | findstr Administrator 

Pẹlupẹlu "| Findstr Alakoso“O rọrun nikan nigbati o mọ kini gangan IT o nilo, tabi lo nikan apakan akọkọ lati wo gbogbo eniyan ti o wọle si olupin naa.

IwUlO fun asopọ ojiji eniyan ti kii ṣe alabojuto si awọn akoko olumulo RDP ni WinServer 2012R2

2. Sopọ si igba yii, ti a pese ni agbegbe naa ẹgbẹ imulo Aṣayan “Ṣeto awọn ofin iṣakoso latọna jijin fun awọn akoko olumulo ti Awọn iṣẹ Ojú-iṣẹ Latọna jijin” ni yiyan pẹlu o kere ju “Igba Atẹle pẹlu igbanilaaye olumulo” aṣayan ti a yan ((awọn alaye diẹ sii):

mstsc /shadow:127

Jọwọ ṣe akiyesi pe atokọ naa yoo ni awọn wiwọle olumulo nikan ninu.

Mo tun sọ pe laisi awọn ẹtọ abojuto iwọ yoo gba atẹle naa:

IwUlO fun asopọ ojiji eniyan ti kii ṣe alabojuto si awọn akoko olumulo RDP ni WinServer 2012R2

Ṣugbọn fun ṣiṣatunṣe alakoko ti eto ti yoo jiroro, Mo lo akọọlẹ kan pẹlu awọn ẹtọ oludari.

II. Eto

Nitorinaa alaye iṣoro naa: ṣiṣẹda diẹ ninu wiwo ayaworan ti o rọrun lati sopọ si oye ojiji olumulo pẹlu igbanilaaye rẹ, fifiranṣẹ ifiranṣẹ si olumulo naa. Agbegbe siseto ti a yan ni Lasaru.

1. A gba atokọ ni kikun ti awọn olumulo “wiwọle” - “orukọ kikun” lati ọdọ alabojuto, tabi lẹẹkansi nipasẹ console:

wmic useraccount get Name,FullName 

ko si eniti o leewọ ani yi:

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

Emi yoo sọ lẹsẹkẹsẹ pe Lasaru ni o ni iṣoro pẹlu sisẹ faili yii, nitori nipasẹ aiyipada koodu rẹ jẹ UCS-2, nitorinaa Mo kan ni lati yi pada pẹlu ọwọ si UTF-8 deede. Ọpọlọpọ awọn taabu wa ninu eto faili, tabi dipo ọpọlọpọ awọn aaye, eyiti o pinnu lati ṣiṣẹ ni eto; laipẹ tabi nigbamii iṣoro fifi ẹnọ kọ nkan yoo yanju, ati pe faili naa yoo ni imudojuiwọn ni eto.

Nitorinaa, imọran ni lati ni folda ti o wọle si awọn olumulo ti eto naa, fun apẹẹrẹ c: idanwo, ninu eyiti awọn faili 2 yoo wa: akọkọ pẹlu iwọle ati orukọ kikun, keji pẹlu id_rdp ati iwọle ti awọn olumulo. Nigbamii ti, a ṣe ilana data yii bi o ti dara julọ ti a le :).

Lakoko, lati ṣepọ pẹlu atokọ ti awọn akoko, a gbe eyi (iwọle ati orukọ kikun) akoonu si titobi:

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;

Mo gafara fun "ọpọlọpọ koodu", awọn aaye atẹle yoo jẹ ṣoki diẹ sii.

2. Lilo ọna kanna lati paragira ti tẹlẹ, a ka abajade ti sisẹ atokọ naa sinu nkan StringGrid, lakoko ti Emi yoo fun “pataki” koodu kan:

2.1 A gba atokọ lọwọlọwọ ti awọn akoko RDP ninu faili kan:

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 Ṣiṣe faili naa (awọn laini pataki ti koodu nikan ni itọkasi):

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. Asopọ taara funrararẹ nipa tite lori laini pẹlu olumulo ati nọmba igba rẹ:

  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. Awọn tọkọtaya diẹ sii awọn ọṣọ ti a ti ṣe, gẹgẹbi tito lẹsẹsẹ nipasẹ tite bọtini redio, ati awọn ifiranṣẹ si olumulo tabi gbogbo awọn olumulo.

IwUlO fun asopọ ojiji eniyan ti kii ṣe alabojuto si awọn akoko olumulo RDP ni WinServer 2012R2

→ Kikun koodu orisun ni a le rii nibi

III. Lilo AdminLink - ohun ti Mo rii:

AdminLink ṣe ipilẹṣẹ ọna abuja kan ti o tọka si ipo ti ohun elo naa admilaunch.exe, ati ẹda ti ara ẹni ti ohun elo ifilọlẹ AdmiRun.Exe eyi ti o wa ninu folda olumulo, fun apẹẹrẹ vasya, oriṣi C: UsersvasyaWINDOWS. Ni gbogbogbo, kii ṣe ohun gbogbo ti buru pupọ: o le ṣere ni ayika pẹlu awọn ẹtọ iwọle si faili ọna abuja ati awọn miiran lati ko ẹri-ọkan abojuto tirẹ kuro.

orisun: www.habr.com

Fi ọrọìwòye kun