Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Батник который бы определял состояние активации виндовс

Ответить
Настройки темы
CMD/BAT - Батник который бы определял состояние активации виндовс

Аватара для angel_lyucifer

Старожил


Сообщения: 175
Благодарности: 4


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: angel_lyucifer
Дата: 13-02-2013
Привет, нужен универсальный батник который бы определял состояние активации виндовс если система активирована тогда запустить файл 1.ехе а если система не активирована тогда запустить файл 2.ехе.

Нет это не связано с активацией, я пишу не большую программу для людей с ограниченными возможностими.
Если система активирована тогда будет одно определённое голосовое оповещение а если система не активирована тогда будет другое голосовое определённое оповещение...

Помогите пожалуйста.

Отправлено: 00:10, 13-02-2013

 

Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


В общем виде более детальная информация об активации (берется из значений DigitalProductId и DigitalProductId4, некоторые из полей структур отправлены в /dev/null).
Код: Выделить весь код
@set @lic=0 /*
  @echo off
    set @lic=
    cscript /nologo /e:jscript "%~f0"
  exit /b
*/

(function() {
  Array.prototype.getString = function(b, e) {
    return String.fromCharCode.apply(null, this.slice(b, e));
  }
  
  Array.prototype.getCdKey = function(b, e) {
    var i, j, key = '', raw = this.slice(b, e),
        map = 'BCDFGHJKMPQRTVWXY2346789'.split('');
    
    for (i = 24; i >= 0; i--) {
      var k = 0;
      for (j = 14; j >= 0; j--) {
        k = (k << 8) + raw[j];
        raw[j] = (k / 24) & 255;
        k %= 24;
      }
      key = map[k] + key;
      if ((i % 5) === 0 && i !== 0) key = '-' + key;
    }
    
    return key;
  }
  
  Array.prototype.getUString = function(b, e) {
    var arr = this.slice(b, e);
    
    for (var i = 0; i < arr.length; i++) {
      if (arr[i] === 0) arr.splice(i, 1);
    }
    
    return String.fromCharCode.apply(null, arr);
  }
  
  var key = 'HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\DigitalProductId',
      dpi, dpi4;
  
  try {
    with (new ActiveXObject('WScript.Shell')) {
      dpi = RegRead(key).toArray();
      dpi4 = RegRead(key + 4).toArray();
    }
    
    WScript.echo('ProductId    : ' + dpi.getString(9, 31));
    WScript.echo('EditionId    : ' + dpi.getString(36, 45));
    WScript.echo('CdKey        : ' + dpi.getCdKey(52, 67));
    WScript.echo('AdvancedId   : ' + dpi4.getUString(8, 135));
    WScript.echo('ActivationId : ' + dpi4.getUString(136, 263));
    WScript.echo('EditionType  : ' + dpi4.getUString(280, 600));
    WScript.echo('KeyType      : ' + dpi4.getUString(1016, 1143));
    WScript.echo('EULA         : ' + dpi4.getUString(1144, 1272));
  }
  catch (e) {
    WScript.echo(e.message);
  }
}());
накидал на скорую руку, пока было время, так что допиливание о оптимизация - дело конечного пользователя.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:02, 26-05-2015 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Вложения
Тип файла: zip pk.zip
(27.4 Kb, 81 просмотров)

Напоследок (может кому пригодится). Набросал на Си консольное приложение pk.exe (от product key). Если закинуть в одну из директорий переменной %path% удобно дампить данные об активации из батников. Например:
Код: Выделить весь код
@echo off
  setlocal
    for /f "tokens=2* delims=:" %%i in (
      'pk ^| findstr /i eula'
    ) do set "eula=%%i"
    echo %eula: =%
  endlocal
exit /b
В архиве помимо прочего описание структур DigitalProductId и DigitalProductId4.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:03, 28-05-2015 | #12



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Батник который бы определял состояние активации виндовс

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - батник сделать, который печатал бы общее число переменных makc2364 Скриптовые языки администрирования Windows 1 19-12-2011 02:34
CMD/BAT - батник который проверял бы пинг, обрывал соединение при ошибке, потом снова подключал TakedaSun Скриптовые языки администрирования Windows 23 18-02-2011 14:50
CMD/BAT - Батник который закрывает процесс nullnull_ru Скриптовые языки администрирования Windows 2 21-01-2011 05:22
Любой язык - [решено] Скрипт который бы запускал 2 процесса и в случае убийства одного убивал бы и другой iDrug Скриптовые языки администрирования Windows 7 12-10-2009 19:08
CMD/BAT - [решено] нужен батник который бы пинговал диапазон ip и записывал результат в файл dvassilyev Скриптовые языки администрирования Windows 7 08-05-2009 14:33




 
Переход