GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение Vovix » Ср янв 24, 2018 3:32 pm

Я тут наткнулся на интересную для меня вещь, а именно - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ - GetAdmin
вот она - https://blog.instalator.ru/archives/47#more-47

цитирую автора (спасибо ему большое):
Моему умному дому понадобилось управление компьютером. Немного поковыряв Delphi, написал небольшую программку, через которую с помощью обычных GET запросов можно отправлять горячие клавиши удаленному компьютеру, запускать процессы (команды для запуска и сами процессы настраиваются в программе), получать информацию о всех запущенных процессах, выключать\перезагружать компьютер.
Программа запускает http сервер, висит в трее и принимает GET запросы:
ГОВОРЮ СРАЗУ: я знаю про PsTools - https://technet.microsoft.com/ru-ru/sys ... tools.aspx и использую этот пакет программ, но тем не менее, мне понравилась реализация GetAdmin и я начал ее использовать у себя...

При этом раз я люблю создать себе доп.задачу, я написал метод и скрипт для GetAdmin!
Вот так это выглядит у меня в меню
Виджет(назовем его так) для выполнения команд(3 раза):
Скриншот2.png
Скриншот2.png (84.84 КБ) 8630 просмотров
и небольшая изюменка, виджет для добавления команд на удаленную систему:
СпойлерПоказать
Скриншот 2018-01-24 16.04.18.png
Скриншот 2018-01-24 16.04.18.png (23.9 КБ) 8635 просмотров
У меня получилось очень специфично (индивидуально) и не уверен можно ли повторить это в другой системе
вернее повторить то можно, но там используются мои классы и свойства, которые понадобиться создать или поменять на свои
и я, конечно, выложу сюда метод - GetAdmin из своего класса OtherHardware (https://connect.smartliving.ru/profile/136/objects.html)
СпойлерПоказать

Код: Выделить всё

$GA_ot = $this->object_title;
$GA_ip = $this->getProperty("IPint"); 
$GA_port = $this->getProperty("port");
$GA_online = $this->getProperty("online");
$GA_ol_color = $this->getProperty("online_color");

$GA_doit = gg('Sets.GA_cmd_txt');

switch ($GA_online) { // для fa
   case 0:
      $fa1 = "question-";
   break;
   case 1:
      $fa1 = "check-";
   break;
   case 2:
      $fa1 = "times-";
   break;
   default:
      // вообще, сюда попасть мы не должны
      $fa1 = "";
}
$str = '<i class="fa fa-'.$fa1.'circle" aria-hidden="true" style="color:'.$GA_ol_color.';"></i>&nbsp;<b>'.$GA_ot.'</b>';
$timeGA = 'Время и дата выполнения:&nbsp;<span style="float: right;"><b>'.date( "H:i:s - d.m.Y", time()).'</span></b>';

// проверим - это специальная команда выводящая список команд из файла GetAdmin.ini или нет ?
if ($GA_doit != '*') { // нет это не спец.команда, это команда из программы GetAdmin
   $GA_cmd = str_ireplace("-", "=", $GA_doit);
   $str = $str.'<span style="float: right;"><b>'.$GA_cmd.'</b></span><br>';
   $str = $str.$timeGA.'<hr>';
   if (preg_match("/(key=[A-Z0-9+]+$)|(cmd=[a-zA-Z0-9_]+$)|(chk=[a-zA-Z0-9+-_]+$)/", $GA_cmd)) { // через рег.выражения выявим ошибки синтаксиса
      $result = getURL('http://'.$GA_ip.':'.$GA_port.'/?'.$GA_cmd, 0);
      //echo $result;
      if ($result == false) { // проверим - а вообще можем получить данные?
         
         $provresult = getURL('http://'.$GA_ip.':'.$GA_port.'/?chk=GetAdmin', 0); // проверим выполив заведомо имеющейся командой
         
         switch ($GA_online) { // проверим варианты с учетом online/offline терминала
            case 0:
               $str = $str.'<font size="+1" color="red">Не выполнено!</font><br>';
               $str = $str.'Возможные причины:<br>';
               if ($provresult == false) {
                  $str = $str.'- нет доступа по сети к <b>'.$GA_ot.'</b>;<br>';
                  $str = $str.'- GetAdmin на <b>'.$GA_ot.'</b> не запущен;<br>';
                  $str = $str.'- настройки доступа к GetAdmin ошибочны.<br>';
               } else {
                  $str = $str.'- команда <b>'.$GA_cmd.'</b> отсутствует на <b>'.$GA_ot.'</b>.<br>';
               }
            break;
            case 1:
               $str = $str.'<font size="+1" color="red">Не выполнено!</font><br>';
               $str = $str.'Возможные причины:<br>';
               if ($provresult == false) {
                  $str = $str.'- GetAdmin на <b>'.$GA_ot.'</b> не запущен;<br>';
                  $str = $str.'- настройки доступа к GetAdmin ошибочны.<br>';
               } else {
                  $str = $str.'- команда <b>'.$GA_cmd.'</b> отсутствует на <b>'.$GA_ot.'</b>.<br>';
               }
            break;
            case 2:
               $str = $str.'<font size="+1" color="red">Не выполнено!</font><br>';
               $str = $str.'Возможные причины:<br>';
               if ($provresult == false) {
                  $str = $str.'- нет доступа по сети к <b>'.$GA_ot.'</b>.<br>';
               } else {
                  $str = $str.'- команда <b>'.$GA_cmd.'</b> отсутствует на <b>'.$GA_ot.'</b>.<br>';
               }
            break;
            default:
               // вообще, сюда попасть мы не должны
               echo "ошибка в режиме онлайн!";
         }

      } else { // данные (ответ) получаем, сформируем их
         $str = $str.iconv ("CP1251", "UTF-8", $result);
         $str = str_ireplace("<html>", "",$str);
         $str = str_ireplace("</html>", "",$str);
         $str = str_ireplace("<p>", "<br>",$str);
         $str = str_ireplace("</p>", "<br>",$str);
         $str = ($GA_cmd == "cmd=process") ? str_ireplace(";", ";&nbsp;",$str) : $str;
      }
   } else { // регулярные выражения выявили ошибку
      $str = $str.'<font size="+1" color="red">Не выполнено!</font><br>';
      $str = $str.'Причина: ошибка синтаксиса! => '.$GA_cmd;
   }
   $this->setProperty('GA_result', $str); // записываем в свой объект
   sg("Sets.GA_result", $str); // записываем для меню
 
} else { // да, это спец.команда
   $str = $str.'<span style="float: right;"><b>из GetAdmin.ini</b></span>';
   $str = $str.'<br>'.$timeGA;
   if (file_exists('\\\\'.$GA_ip.'\\GetAdmin\\GetAdmin.ini')) { // проверим доступность файла GetAdmin.ini
      // файл доступен, формируем список команд из него
      $config = parse_ini_file('\\\\'.$GA_ip.'\\GetAdmin\\GetAdmin.ini',true);
      $count = $config[Properties][Count];
      $max = $count * 4;
      foreach($config[Commands] as $key=>$object) {
         if (($object != "") && (strpos($key, "show") === false)) {
            if (strpos($key, "Command") !== false) {
               $str = $str.'<hr>';
               $object = '<span style="cursor:pointer"><font size="+1" color="red" onclick = "ajaxSetGlobal(\'Sets.GA_cmd_txt\', \'cmd='.$object.'\');">'.$object.'</font></span>';
               }
            $str = $str.'<font color="green">'.$key.'</font>&nbsp;=&nbsp;'.$object.'<br>';
         } 
         if (--$max <=0) break;
      }
   } else {
      // файл GetAdmin.ini не доступен, выясним причины
      $str = $str.'<hr>';
      $provresult = getURL('http://'.$GA_ip.':'.$GA_port.'/?chk=GetAdmin', 0); // проверим выполив заведомо имеющейся командой
         switch ($GA_online) { // проверим варианты с учетом online/offline терминала
            case 0:
            case 2:
               $str = $str.'<font size="+1" color="red">Не выполнено!</font><br>';
               $str = $str.'Возможные причины:<br>';
               if ($provresult == false) {
                  $str = $str.'- нет доступа по сети к <b>'.$GA_ot.'</b>;<br>';
                  $str = $str.'- GetAdmin на <b>'.$GA_ot.'</b> не установлен;<br>';
                  $str = $str.'- на <b>'.$GA_ot.'</b> GetAdmin не запущен;<br>';
                  $str = $str.'- настройки доступа к GetAdmin ошибочны.<br>';
               } else {
                  $str = $str.'- к папке GetAdmin на <b>'.$GA_ot.'</b> нет доступа;<br>';
                  $str = $str.'- GetAdmin на <b>'.$GA_ot.'</b> в другой папке.<br>';
               }
            break;
            case 1:
               $str = $str.'<font size="+1" color="red">Не выполнено!</font><br>';
               $str = $str.'Возможные причины:<br>';
               if ($provresult == false) {
                  $str = $str.'- GetAdmin на <b>'.$GA_ot.'</b> не установлен;<br>';
                  $str = $str.'- на <b>'.$GA_ot.'</b> GetAdmin не запущен;<br>';
                  $str = $str.'- настройки доступа к GetAdmin ошибочны.<br>';
               } else {
                  $str = $str.'- к папке GetAdmin на <b>'.$GA_ot.'</b> нет доступа;<br>';
                  $str = $str.'- GetAdmin на <b>'.$GA_ot.'</b> в другой папке.<br>';
               }
            break;
            default:
               // вообще, сюда попасть мы не должны
               echo "ошибка в режиме онлайн!";
         }
   }
   $this->setProperty('GA_result', $str); // записываем в свой объект
   sg("Sets.GA_result", $str); // записываем для меню
}
И скрипт addGetAdmin
СпойлерПоказать

Код: Выделить всё

/*
* Сценарий 'addGetAdmin' для MajorDoMo 
* автор: Владимир Попов, на форуме - Vovix 
* дата последнего изменения: 18.01.2018
* обязательно наличие программы GetAdmin на управляемом устройстве (ПК)
* runScript('getAdmin', array('url'=>$хххх,'cmd'=>$yyyy,'port'=>$zzzz,'doit'=>$qqqq)) 
*/
$addGA_ot = ($params['name'] == '') ?  gg("Sets.addGA_name") : $params['name'];
$addGA_cmd = ($params['cmd'] == '') ?  gg("Sets.addGA_cmd") : $params['cmd'];
$addGA_path = ($params['path'] == '') ?  gg("Sets.addGA_path") : $params['path'];
$addGA_path = str_ireplace('/', '\\', $addGA_path);
$addGA_param = ($params['param'] == '') ?  gg("Sets.addGA_param") : $params['param'];
$addGA_show = ($params['show'] == '') ?  gg("Sets.addGA_show") : $params['show'];

$GA_ip = gg($addGA_ot.'.IPint'); 
$GA_port = gg($addGA_ot.'.port');
$GA_online = gg($addGA_ot.'.online');
$GA_ol_color = gg($addGA_ot.'.online_color');

$addGA_file = '\\\\'.$GA_ip.'\\GetAdmin\\GetAdmin.ini';

switch ($GA_online) { // для fa
   case 0:
      $fa1 = "question-";
   break;
   case 1:
      $fa1 = "check-";
   break;
   case 2:
      $fa1 = "times-";
   break;
   default:
      // вообще, сюда попасть мы не должны
      $fa1 = "";
}
$str = '<i class="fa fa-'.$fa1.'circle" aria-hidden="true" style="color:'.$GA_ol_color.';"></i>&nbsp;<b>'.$addGA_ot.'</b>';
$timeGA = 'Время и дата выполнения:&nbsp;<span style="float: right;"><b>'.date( "H:i:s - d.m.Y", time()).'</span></b>';

   $str = $str.'<br>'.$timeGA;
   $str = $str.'<hr>';
   $imput = "";
   $impstr = "";
   //$str = $str.'<span style="float: right;">наж. на красн.ком.и потом выполн.</span><br>'.$timeGA;
if (file_exists($addGA_file)) { // проверим доступность файла GetAdmin.ini
      // файл доступен, формируем список команд из него
      $config = parse_ini_file('\\\\'.$GA_ip.'\\GetAdmin\\GetAdmin.ini',true);
      if (!copy($addGA_file, $addGA_file.'.old')) { // скопируем файл ini с изменением расширения и проверим смоги ли
       // не смогли скопировать
       
      } else { // смогли скопировать
         
         $count = $config[Properties][Count];
         $input = "[Properties]"."\r\n";
         $inpstr = '<font color="blue"><b>[Properties]</b></font><br>';
         foreach($config[Properties] as $key=>$object) {
            if ($key == 'Count') { $object = $object + 1; }
            $input = $input.$key.'='.$object."\r\n";
            $inpstr = $inpstr.'<font color="green">'.$key.'</font>='.$object."<br>";
         }
         $c_str = $count * 4;
         $i = 0;
         $input = $input."[Commands]"."\r\n";
         $inpstr = $inpstr.'<font color="blue"><b>[Commands]</b></font><br>';
         foreach($config[Commands] as $key=>$object) {
            if (($i == $c_str)||($i == $c_str + 1)||($i == $c_str + 2)||($i == $c_str + 3)) {
               if (strpos($key, "Command") !== false) {
                  $key = "Command_".$count;
                  $object = $addGA_cmd;
               }
               if (strpos($key, "Path") !== false) {
                  $key = "Path_".$count;
                  $object = $addGA_path;
               }
               if (strpos($key, "Param") !== false) {
                  $key = "Param_".$count;
                  $object = $addGA_param;
               }
               if (strpos($key, "show") !== false) {
                  $key = "show_".$count;
                  $object = $addGA_show;
               }
            } 
            $input = $input.$key.'='.$object."\r\n";
            $inpstr = $inpstr.'<font color="green">'.$key.'</font>='.$object.'<br>';
            $i++;
         }
       
         $fd = fopen( $addGA_file , "w+" );
         fwrite( $fd , $input , strlen( $input ) );
         fclose( $fd );
      }

} else {
      // файл GetAdmin.ini не доступен, выясним причины
      $str = $str.'<hr>';
      $provresult = getURL('http://'.$GA_ip.':'.$GA_port.'/?chk=GetAdmin', 0); // проверим выполив заведомо имеющейся командой
         switch ($GA_online) { // проверим варианты с учетом online/offline терминала
            case 0:
            case 2:
               $str = $str.'<font size="+1" color="red">Не выполнено!</font><br>';
               $str = $str.'Возможные причины:<br>';
               if ($provresult == false) {
                  $str = $str.'- нет доступа по сети к <b>'.$addGA_ot.'</b>;<br>';
                  $str = $str.'- GetAdmin на <b>'.$addGA_ot.'</b> не установлен;<br>';
                  $str = $str.'- на <b>'.$addGA_ot.'</b> GetAdmin не запущен;<br>';
                  $str = $str.'- настройки доступа к GetAdmin ошибочны.<br>';
               } else {
                  $str = $str.'- к папке GetAdmin на <b>'.$addGA_ot.'</b> нет доступа;<br>';
                  $str = $str.'- GetAdmin на <b>'.$addGA_ot.'</b> в другой папке.<br>';
               }
            break;
            case 1:
               $str = $str.'<font size="+1" color="red">Не выполнено!</font><br>';
               $str = $str.'Возможные причины:<br>';
               if ($provresult == false) {
                  $str = $str.'- GetAdmin на <b>'.$addGA_ot.'</b> не установлен;<br>';
                  $str = $str.'- на <b>'.$addGA_ot.'</b> GetAdmin не запущен;<br>';
                  $str = $str.'- настройки доступа к GetAdmin ошибочны.<br>';
               } else {
                  $str = $str.'- к папке GetAdmin на <b>'.$addGA_ot.'</b> нет доступа;<br>';
                  $str = $str.'- GetAdmin на <b>'.$addGA_ot.'</b> в другой папке.<br>';
               }
            break;
            default:
               // вообще, сюда попасть мы не должны
               echo "ошибка в режиме онлайн!";
         }
}
$str = $str.$inpstr;
sg($addGA_ot.".addGA_result", $str); // записываем в свой объект
sg("Sets.addGA_result", $str); // записываем для меню
Для воспроизведения у себя, если понадобиться вдруг кому, необходимо знание php
а ткже некоторая предварительная подготовка ПК (увы под управлением Windows) в домашней сети, а именно необходим доступ по локалке к сетевым папкам из ПК на котором MDM!
Вот!
За это сообщение автора Vovix поблагодарили (всего 9):
Chainik (Ср янв 24, 2018 4:35 pm) • lanket (Ср янв 24, 2018 5:56 pm) • odinvolk (Ср янв 24, 2018 7:50 pm) • webms (Чт янв 25, 2018 4:13 pm) • Molostov (Пт янв 26, 2018 3:57 pm) • TrDA (Пн янв 29, 2018 9:55 am) • markovrv (Вт янв 30, 2018 1:13 pm) • eeak1 (Ср ноя 21, 2018 4:35 pm) • Divan (Пт авг 30, 2019 11:30 pm)
Рейтинг: 10.47%
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Chainik
Сообщения: 1465
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 262 раза
Поблагодарили: 455 раз

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение Chainik » Ср янв 24, 2018 4:35 pm

Vovix, отлично получилось!

Сам для управления по "локалке" использую TightVNC (http://www.tightvnc.com/). Но там, видимо, открытого API нет.

А вам, как говорит молодежь, "респект и уважуха" за то, что делитесь с общественностью наработками (а то чувствую, многие "жадничают").
Аватара пользователя
webms
Сообщения: 498
Зарегистрирован: Чт дек 15, 2016 3:13 am
Благодарил (а): 221 раз
Поблагодарили: 88 раз

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение webms » Чт янв 25, 2018 4:14 pm

Vovix,круто! Спасибо
odinvolk
Сообщения: 52
Зарегистрирован: Ср май 31, 2017 3:06 am
Откуда: odinwolk@gmail.com
Благодарил (а): 194 раза
Поблагодарили: 18 раз

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение odinvolk » Вт янв 30, 2018 12:51 pm

Vovix, если не сложно подскажите к чему привязана кнопка ВЫПОЛНИТЬ в меню (выполнить GetAdmin)
Connect ---- Telegram
Яндекс.Деньги для благодарностей за помощь или нажмите кнопку "Спасибо"!!!
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 532 раза
Контактная информация:

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение Vovix » Вт янв 30, 2018 7:37 pm

odinvolk писал(а):Vovix, если не сложно подскажите к чему привязана кнопка ВЫПОЛНИТЬ в меню (выполнить GetAdmin)
не сложно! :D
кнопка ВЫПОЛНИТЬ запускает метод, и только:

Код: Выделить всё

callMethod(gg("Sets.GA_name").'.getAdmin'); 
т.к. перед этим select - имя терминала
в свойство Sets.GA_name кладет имя объекта!
За это сообщение автора Vovix поблагодарили (всего 2):
odinvolk (Ср янв 31, 2018 9:47 am) • Samir77 (Пн мар 11, 2019 12:18 am)
Рейтинг: 2.33%
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение Divan » Сб авг 31, 2019 12:06 am

Решил автоматизировать регулировку яркости монитора, у меня не ноутбук, а стационарный компьютер и обычный LED монитор, на ноутбуках можно менять яркость экрана с помощью горячих клавиш, на моем ПК нет. Есть программа, называется Win10_BrightnessSlider, она аппаратно меняет яркость монитора, в настройках монитора значение яркости тоже меняется, не затемняет программно, как делают это другие программы, но я не знаю как ее можно связать с majordomo, так как в ней нет никаких настроек. Есть кто смог это сделать?

Я сейчас пока настроил таким образом, но это не совсем то, что мне нужно. Скачал и запустил две программы, Gamma Panel (работает на Windows 10) и GetAdmin, программы положил в одну папку, в Gamma Panel назначил горячие клавиши, сам ярлык Gamma Panel поместил в автозагрузку, настроил GetAdmin, а в majordomo просто создал сценарии.
Вложения
Безымянный2.JPG
GetAdmin
Безымянный2.JPG (59.13 КБ) 5480 просмотров
Безымянный.jpg
Gamma Panel
Безымянный.jpg (52.28 КБ) 5480 просмотров
Безымянный3.jpg
Сценарии в majordomo
Безымянный3.jpg (52.77 КБ) 5480 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение xor » Вс сен 01, 2019 7:34 pm

а чем плох nircmd, который в поставке системы идёт?
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение Divan » Вс сен 01, 2019 10:58 pm

По мне GetAdmin в плане настройки проще, чем nircmd, не нужно заморачиваться с правами, с доступом.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
xor
Сообщения: 2045
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 289 раз
Поблагодарили: 633 раза

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение xor » Пн сен 02, 2019 12:29 am

Divan писал(а):
Вс сен 01, 2019 10:58 pm
По мне GetAdmin в плане настройки проще, чем nircmd, не нужно заморачиваться с правами, с доступом.
этак для каждой хотелки свою прогу ставить? звук-то на винде ниркомандером и так в МДМ штатно регулируется. права и доступ нужны такие же, как и для гетадмина, а возможностей там побольше.
Но выбор, конечно, у каждого свой. я просто не покупаю второй молоток, если нужно забить второй гвоздь)
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: GetAdmin - ПРОГРАММА ДЛЯ УПРАВЛЕНИЯ КОМПЬЮТЕРОМ!

Сообщение Divan » Пн сен 02, 2019 12:41 am

Все должно быть максимально просто, getadmin сможет настроить любой пользователь, а nircmd это для гиков. Это как Windows и Linux.
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Ответить