நிறுவனத்தின் தனிமைப்படுத்தப்பட்ட காலத்தில் சிக்கல் பின்வருமாறு ஆனது: பயன்பாட்டு மென்பொருளில் சேவை மற்றும் ஆலோசனை வழங்கும் வல்லுநர்கள் அலுவலகங்களுக்குச் செல்வதைக் குறைப்பது உண்மையில் அவசியம், மேலும் வெளிப்படையாகச் சொன்னால், பயனர்கள் பெரும்பாலும் நிபுணர்களின் உதவியை ஆராய விரும்பாமல் துஷ்பிரயோகம் செய்கிறார்கள். "அவர்கள் வருவார்கள் - அவர்கள் உதவுவார்கள் - அவர்கள் அதைச் செய்வார்கள், ஆனால் நான் புகைபிடிப்பேன் / காபி குடிப்பேன் போன்றவை" என்று அவர்கள் கூறுகிறார்கள். தொலைநிலைத் திரையைப் பார்த்தால், சேவையகத்தைப் பகிரும்போது தொலைபேசி ஆலோசனை மிகவும் பயனுள்ளதாக இருக்கும்.
எங்கள் மிதிவண்டியின் "கண்டுபிடிப்பு"க்குப் பிறகு, கட்டுரையின் தலைப்பில் விவேகமான தகவல்கள் வெளிவந்தன:
கீழே உள்ள அனைத்து தகவல்களும் உள்ளவர்களுக்கானது அசாதாரண வக்கிரங்களை சாதாரணமாக பொறுத்துக்கொள்கிறது விரும்பிய முடிவைப் பெற, தேவையற்ற முறைகளை கண்டுபிடிப்பது.
"பூனையை வால் மூலம் இழுக்க" கூடாது என்பதற்காக, நான் கடைசியாக தொடங்குவேன்: பைக் பயன்பாட்டைப் பயன்படுத்தும் சராசரி பயனருக்கு வேலை செய்கிறது
I. கன்சோல் மற்றும் நிழல் RDP.
உடன் பயன்படுத்துவதால் சர்வர் மேனேஜர் கன்சோலின் நிர்வாகி உரிமைகள் -> QuickSessionCollection -> ஆர்வமுள்ள பயனரின் அமர்வைக் கிளிக் செய்வதன் மூலம், சூழல் மெனுவிலிருந்து நிழலைத் தேர்ந்தெடுக்கவும் மென்பொருளை எவ்வாறு பயன்படுத்துவது என்று அறிவுறுத்தும் பணியாளர்களுக்கு, ஒரு விருப்பம் அல்ல, மற்றொரு "மர" முறை கருதப்பட்டது, அதாவது:
1. அமர்வின் RDP ஐடியைக் கண்டறியவும்:
query user | findstr Administrator
அல்லது:
qwinsta | findstr Administrator
மேலும்"| findstr நிர்வாகி"உங்களுக்கு சரியாகத் தெரிந்தபோதுதான் வசதியாக இருந்தது நிர்வாகி உங்களுக்குத் தேவை, அல்லது சர்வரில் உள்நுழைந்துள்ள அனைவரையும் பார்க்க முதல் பகுதியை மட்டும் பயன்படுத்தவும்.
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