NEWS
Программа управления компьютером GetAdmin
-
2.1
Исправлены некоторые ошибки.
Добавил команду chk, проверка в процессах запущено ли приложение. `
Последнее время очень много говорится про защищённость. Твоё API висит открытым всем ветрамХоть basicAuth+SSL добавить бы..
-
2.1
Исправлены некоторые ошибки.
Добавил команду chk, проверка в процессах запущено ли приложение. `
Последнее время очень много говорится про защищённость. Твоё API висит открытым всем ветрамХоть basicAuth+SSL добавить бы.. `
Ну из вне то не будет работать, у меня сеть за NATом, из внешки только по VPN доступ.
как функционал допилю погляжу по безопасности.
-
Обновил шапку версия 2.2.
Добавил поддержку эмуляции горячих клавиш. Если не работают, те которыми пользуетесь, пишите.
-
Очередное обновление. 2.5
Немного причесал, скорее всего в таком варианте она и останется.
-
Обалдеть, глобальный подход однако.
-
Может сделать прогу хотя бы двуязычной? Полезная штука `
Исполнено! -
Отлично. Перевел на немецкий: http://forum.iobroker.net/viewtopic.php?f=23&t=1848
-
update
-
Instalator, подскажи куда копать, ставлю getadmin на комп.
Команды отправляются, всё работает, решил заюзать скрипт, и облом.
Вписываю настройки ,сохраняю падает в ошибку
51_get.png -
Instalator, подскажи куда копать, ставлю getadmin на комп.
Команды отправляются, всё работает, решил заюзать скрипт, и облом.
Вписываю настройки ,сохраняю падает в ошибку `
А драйвер SimpleAPI запущен? -
Instalator, подскажи куда копать, ставлю getadmin на комп.
Команды отправляются, всё работает, решил заюзать скрипт, и облом.
Вписываю настройки ,сохраняю падает в ошибку
А драйвер SimpleAPI запущен?
Вроде работает! ````
{
/opt/iobroker$ iobroker l i
! system.adapter.admin.0 : admin - enabled, port: 8081, bind: 0.0.0.0, run as: admin
system.adapter.web.0 : web - enabled, port: 8082, bind: 0.0.0.0, run as: admin
system.adapter.simple-api.0 : simple-api - enabled, port: 8087, bind: 0.0.0.0, run as: admin -
Instalator, подскажи куда копать, ставлю getadmin на комп.
Команды отправляются, всё работает, решил заюзать скрипт, и облом.
Вписываю настройки ,сохраняю падает в ошибку
А драйвер SimpleAPI запущен?
Вроде работает!
{ /opt/iobroker$ iobroker l i ! system.adapter.admin.0 : admin - enabled, port: 8081, bind: 0.0.0.0, run as: admin system.adapter.web.0 : web - enabled, port: 8082, bind: 0.0.0.0, run as: admin system.adapter.simple-api.0 : simple-api - enabled, port: 8087, bind: 0.0.0.0, run as: admin
`
Ошибка появилась когда прописал в настройках getadmin ip для Simpleapi? А ты скрипт добавил? он же должен переменные создать сначала.Пропиши пока руками в скрипте настройки, попробую отловить ошибку потом.
305_heizungsscript_220_b17_temp.txt -
Ошибка появилась когда прописал в настройках getadmin ip для Simpleapi? А ты скрипт добавил? он же должен переменные создать сначала.
Пропиши пока руками в скрипте настройки, попробую отловить ошибку потом. `
Да скрипт добавил, переменные создались -
Не запускается программа, в диспетчере висят три процесса GetAdmin.exe *32, на попытки закрыть принудительно не отвечают.
Запускал от администратора.
Windows 7 64
!
-
Не запускается программа, в диспетчере висят три процесса GetAdmin.exe *32, на попытки закрыть принудительно не отвечают.
Запускал от администратора.
Windows 7 64
! filename="1212.jpg" index="0">~~ `
У меня тоже вин7 64 запускается норм и без администратора. С момента написания стоит в автозагрузке и глюков вообще не было.В итоге получилось запустить?
-
На моем нет, а на другом компе да, хотя там тоже стоит win 7 64.
Может что то нужно дополнительно поставить типа NET Framework или с чем-то конфликтует?
-
Выкладываю свой скрипт, может кому пригодится.
! ```
`createState('GetAdmin.cmd', '');
createState('GetAdmin.Key', '');
createState('GetAdmin.Check', '');
createState('GetAdmin.CheckRes', '');
createState('GetAdmin.Host', '');
createState('GetAdmin.Port', '');
createState('GetAdmin.WOL', '');
createState('GetAdmin.Power', '');
createState('GetAdmin.Process', '');
createState('GetAdmin.MonitorSwitch', '');
createState('GetAdmin.AudioSwitch', '');
var request = require('request');
var wol = require('wake_on_lan');
var ping = require('ping');
var flag_foobar = false;
var flag_chrome = false;
var flag_utorrent = false;
! on({id: 'javascript.0.GetAdmin.cmd', change: 'any'}, function (obj) {
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
ping.sys.probe('192.168.1.15', function(isAlive){
var pingPC = isAlive ? true : false;
if (!pingPC && (obj.newState.val =='foobar' || obj.newState.val =='torrent' || obj.newState.val =='chrome' || obj.newState.val =='vlc')){
log('Включаем комп и отправляем команду через 3 минуты: '+ obj.newState.val);
setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC');
setTimeout(function() {
sendCmdGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - cmd: '+ obj.newState.val);
}, 180000);
} else {
sendCmdGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - cmd: '+ obj.newState.val);
}
});} else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Key', change: 'any'}, function (obj) {
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
sendKeyGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - Key: '+ obj.newState.val);
}else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Check', change: 'any'}, function (obj) {
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
sendCheckGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - Check: '+ obj.newState.val);
}else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Power', change: 'any'}, function (obj) {
var pingPC = getState('ping.1.Server-PC.192_168_1_10').val;
if((obj.newState.val == 'true' || obj.newState.val === true) && (pingPC == 'false' || pingPC === false)){
log('Включаем PC - on');
setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC'); //
}
if(obj.newState.val == 'false' || obj.newState.val === false){
log('Выключаем PC - off');
setState('javascript.0.GetAdmin.cmd', 'shutdown');
}
});
! on({id: 'javascript.0.GetAdmin.WOL', change: 'any'}, function (obj) {
if(obj.newState.val !== ''){
wol.wake(obj.newState.val);
log(obj.newState.val); //00:1B:FC:9A:8B:05
//var magic_packet = wol.createMagicPacket('00:1B:FC:9A:8B:10');
}
});
! on({id: 'javascript.0.GetAdmin.MonitorSwitch', change: 'any'}, function (obj) {
if(obj.newState.val == '0' || obj.newState.val === 0){
setState('javascript.0.GetAdmin.cmd', 'monitor1', true/ack/);
}
if(obj.newState.val == '1' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitor2', true/ack/);
}
if(obj.newState.val == '2' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitorextend', true/ack/);
}
if(obj.newState.val == '3' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitorclone', true/ack/);
}
});
on({id: 'javascript.0.GetAdmin.AudioSwitch', change: 'any'}, function (obj) {
if(obj.newState.val == '0' || obj.newState.val === 0){
setState('javascript.0.GetAdmin.cmd', 'audio1', true/ack/);
setState('javascript.0.GetAdmin.Key', 'CTRL+ALT+S');
}
if(obj.newState.val == '1' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'audio2', true/ack/);
setState('javascript.0.GetAdmin.Key', 'CTRL+ALT+A');
}
});
/***************************************************************************************/
function sendCmdGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?cmd='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
setTimeout(function(){check_programm();}, 3000);
}
});
}
! function sendKeyGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?key='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
setTimeout(function(){check_programm();}, 3000);} });
}
! function sendCheckGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?chk='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
var resp = body.match(/
! (.*)</p>/g);
resp[0] = resp[0].replace("!
", "").replace("</p>", "");
log(resp[0]);
setState('javascript.0.GetAdmin.CheckRes', resp[0], true/ack/);} });
}
schedule("*/10 * * * *", function () {
check_programm();
});! function check_programm() {
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
var strproc = '';
flag_foobar = false;
flag_chrome = false;
flag_utorrent = false;
! ping.sys.probe('192.168.1.15', function(isAlive){
pingPC = isAlive ? true : false;
if (pingPC){
var options = {
url: 'http://'+host+':'+port+'/?cmd=process'
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
var proc = body.match(/(.*)</html>/g);
proc[0] = proc[0].toLowerCase();
proc[0] = proc[0].replace(//g, "").replace(/;</html>/g, "").replace(/.exe/g, "");
//log(proc[0]);
var parsebody = [];
parsebody = proc[0].split(';');
var j = parsebody.length;
parsebody.sort();
while (j--) {
if (parsebody[j] == parsebody[j-1]) {
parsebody.splice(j, 1);
}
if (j === 1){
log(parsebody);
! for (var i = 0; i < parsebody.length-1; i++) {
strproc += parsebody[i]+',';
}
setState('javascript.0.GetAdmin.Process', strproc);
if (~strproc.indexOf("foobar2000")) {
setState('javascript.0.GetAdmin.Process.foobar2000', 'true');
} else {setState('javascript.0.GetAdmin.Process.foobar2000', 'false');}if (~strproc.indexOf("utorrent")){ setState('javascript.0.GetAdmin.Process.uTorrent', 'true'); } else {setState('javascript.0.GetAdmin.Process.uTorrent', 'false');} if (~strproc.indexOf("chrome")){ setState('javascript.0.GetAdmin.Process.chrome', 'true'); } else {setState('javascript.0.GetAdmin.Process.chrome', 'false');} } } } else { setState('javascript.0.GetAdmin.Process', ''); } }); } else { setState('javascript.0.GetAdmin.Process', ''); } });
}`[/i]
! ```
-
Выкладываю свой скрипт, может кому пригодится.
! ```
`createState('GetAdmin.cmd', '');
createState('GetAdmin.Key', '');
createState('GetAdmin.Check', '');
createState('GetAdmin.CheckRes', '');
createState('GetAdmin.Host', '');
createState('GetAdmin.Port', '');
createState('GetAdmin.WOL', '');
createState('GetAdmin.Power', '');
createState('GetAdmin.Process', '');
createState('GetAdmin.MonitorSwitch', '');
createState('GetAdmin.AudioSwitch', '');
var request = require('request');
var wol = require('wake_on_lan');
var ping = require('ping');
var flag_foobar = false;
var flag_chrome = false;
var flag_utorrent = false;
! on({id: 'javascript.0.GetAdmin.cmd', change: 'any'}, function (obj) {
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
ping.sys.probe('192.168.1.15', function(isAlive){
var pingPC = isAlive ? true : false;
if (!pingPC && (obj.newState.val =='foobar' || obj.newState.val =='torrent' || obj.newState.val =='chrome' || obj.newState.val =='vlc')){
log('Включаем комп и отправляем команду через 3 минуты: '+ obj.newState.val);
setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC');
setTimeout(function() {
sendCmdGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - cmd: '+ obj.newState.val);
}, 180000);
} else {
sendCmdGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - cmd: '+ obj.newState.val);
}
});} else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Key', change: 'any'}, function (obj) {
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
sendKeyGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - Key: '+ obj.newState.val);
}else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Check', change: 'any'}, function (obj) {
if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
sendCheckGetAdmin(obj.newState.val,host,port);
log('Отправляем команду GetAdmin - Check: '+ obj.newState.val);
}else{log('GetAdmin. Не задана команда.');}
});
! on({id: 'javascript.0.GetAdmin.Power', change: 'any'}, function (obj) {
var pingPC = getState('ping.1.Server-PC.192_168_1_10').val;
if((obj.newState.val == 'true' || obj.newState.val === true) && (pingPC == 'false' || pingPC === false)){
log('Включаем PC - on');
setState('javascript.0.GetAdmin.WOL', '94DE802DE4CC'); //
}
if(obj.newState.val == 'false' || obj.newState.val === false){
log('Выключаем PC - off');
setState('javascript.0.GetAdmin.cmd', 'shutdown');
}
});
! on({id: 'javascript.0.GetAdmin.WOL', change: 'any'}, function (obj) {
if(obj.newState.val !== ''){
wol.wake(obj.newState.val);
log(obj.newState.val); //00:1B:FC:9A:8B:05
//var magic_packet = wol.createMagicPacket('00:1B:FC:9A:8B:10');
}
});
! on({id: 'javascript.0.GetAdmin.MonitorSwitch', change: 'any'}, function (obj) {
if(obj.newState.val == '0' || obj.newState.val === 0){
setState('javascript.0.GetAdmin.cmd', 'monitor1', true/ack/);
}
if(obj.newState.val == '1' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitor2', true/ack/);
}
if(obj.newState.val == '2' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitorextend', true/ack/);
}
if(obj.newState.val == '3' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'monitorclone', true/ack/);
}
});
on({id: 'javascript.0.GetAdmin.AudioSwitch', change: 'any'}, function (obj) {
if(obj.newState.val == '0' || obj.newState.val === 0){
setState('javascript.0.GetAdmin.cmd', 'audio1', true/ack/);
setState('javascript.0.GetAdmin.Key', 'CTRL+ALT+S');
}
if(obj.newState.val == '1' || obj.newState.val === 1){
setState('javascript.0.GetAdmin.cmd', 'audio2', true/ack/);
setState('javascript.0.GetAdmin.Key', 'CTRL+ALT+A');
}
});
/***************************************************************************************/
function sendCmdGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?cmd='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
setTimeout(function(){check_programm();}, 3000);
}
});
}
! function sendKeyGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?key='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
setTimeout(function(){check_programm();}, 3000);} });
}
! function sendCheckGetAdmin(value, host, port){
var options = {
url: 'http://'+host+':'+port+'/?chk='+value
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
var resp = body.match(/
! (.*)</p>/g);
resp[0] = resp[0].replace("!
", "").replace("</p>", "");
log(resp[0]);
setState('javascript.0.GetAdmin.CheckRes', resp[0], true/ack/);} });
}
schedule("*/10 * * * *", function () {
check_programm();
});! function check_programm() {
var host = getState('javascript.0.GetAdmin.Host').val;
var port = getState('javascript.0.GetAdmin.Port').val;
var strproc = '';
flag_foobar = false;
flag_chrome = false;
flag_utorrent = false;
! ping.sys.probe('192.168.1.15', function(isAlive){
pingPC = isAlive ? true : false;
if (pingPC){
var options = {
url: 'http://'+host+':'+port+'/?cmd=process'
};
log('Отправляем команду GetAdmin - ' +options.url);
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
log('Ответ от сервера - '+response.statusCode);
var proc = body.match(/(.*)</html>/g);
proc[0] = proc[0].toLowerCase();
proc[0] = proc[0].replace(//g, "").replace(/;</html>/g, "").replace(/.exe/g, "");
//log(proc[0]);
var parsebody = [];
parsebody = proc[0].split(';');
var j = parsebody.length;
parsebody.sort();
while (j--) {
if (parsebody[j] == parsebody[j-1]) {
parsebody.splice(j, 1);
}
if (j === 1){
log(parsebody);
! for (var i = 0; i < parsebody.length-1; i++) {
strproc += parsebody[i]+',';
}
setState('javascript.0.GetAdmin.Process', strproc);
if (~strproc.indexOf("foobar2000")) {
setState('javascript.0.GetAdmin.Process.foobar2000', 'true');
} else {setState('javascript.0.GetAdmin.Process.foobar2000', 'false');}if (~strproc.indexOf("utorrent")){ setState('javascript.0.GetAdmin.Process.uTorrent', 'true'); } else {setState('javascript.0.GetAdmin.Process.uTorrent', 'false');} if (~strproc.indexOf("chrome")){ setState('javascript.0.GetAdmin.Process.chrome', 'true'); } else {setState('javascript.0.GetAdmin.Process.chrome', 'false');} } } } else { setState('javascript.0.GetAdmin.Process', ''); } }); } else { setState('javascript.0.GetAdmin.Process', ''); } });
}`
Спасибо, очень пригодился[/i]! ``` `
-
instalator, комп чтоль сдох ?
я тоже попадался на эту ловушку :x , до кучи раздел был криптован
-
instalator, комп чтоль сдох ?
я тоже попадался на эту ловушку :x , до кучи раздел был криптован `
Бекап битый получился, откатился на декабрь.