Skip to content
/ env Public

JScript for adding temporary variables to environment variables. Which can then be used in calling other scripts and applications.

License

Notifications You must be signed in to change notification settings

ViPiC-Ru/env

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

JScript для добавления в переменные среды временных переменных. Которые затем можно использовать в вызове других скриптов и приложений. Данные для переменных получаются через WMI с локального или удалённого компьютера в сети. Дополнительно переменные можно импортировать из файла и экспортировать в файл, поддерживается несколько форматов.

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

Использование

В командной строке Windows введите следующую команду. Все параметры можно передавать в произвольном порядке. Если необходимо скрыть отображение окна консоли, то вместо cscript можно использовать wscript.

cscript env.min.js [\\<context>] [<input>@<charset>] [<output>] [<option>...] ...
  • <context> - Сетевое имя или ip адрес компьютера, в контексте которого нужно получить данные для переменных.
  • <input> - Формат текстовых данных стандартного потока ввода для импорта переменных.
    • ini - Получает из потока данные для переменных в ini формате.
    • csv - Получает данные в csv формате (заглавное написание ожидает ещё и заголовок).
    • tsv - Получает данные в tsv формате (заглавное написание ожидает ещё и заголовок).
  • <charset> - Кодировка текстовых данных, направленных в стандартный поток ввода (можно использовать значение auto).
  • <output> - Формат текстовых данных стандартного потока вывода для экспорта переменных.
    • ini - Отправляет в поток данные переменных в ini формате.
    • csv - Отправляет данные в csv формате (заглавное написание добавляет ещё и заголовок).
    • tsv - Отправляет данные в tsv формате (заглавное написание добавляет ещё и заголовок).
  • <option> - Дополнительные опции (можно указать несколько).
    • silent - Последующие команды выполнить без отображения.
    • nowait - Последующие команды выполнить без ожидания.
    • debug - Ввести в стандартный поток ошибок отладочную информацию.
  • ... - Далее указывается командная строка для выполнения, в которой будут доступны эти переменные среды.

Переменные среды

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

Операционная система

  • SYS-ARCHITECTURE - Архитектура операционной системы x64 и x86.
  • SYS-DESCRIPTION - Описание системы (компьютера), заданное пользователем.
  • SYS-DRIVE - Буква системного диска (вместе с двоеточием).
  • SYS-INSTALL - Дата и время установки системы в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС.
  • SYS-INSTALL-DATE - Только дата установки системы в формате ДД.ММ.ГГГГ.
  • SYS-KEY - Ключи активации операционной системы.
  • SYS-NAME - Заданное производителем полное название операционной системы.
  • SYS-RESET - Дата и время перезагрузки системы в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС.
  • SYS-RESET-DATE - Только дата перезагрузки системы в формате ДД.ММ.ГГГГ.
  • SYS-SERIAL - Серийный номер операционной системы.
  • SYS-TIME - Текущая дата и время в системе в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС.
  • SYS-TIME-DATE - Только текущая дата в системы в формате ДД.ММ.ГГГГ.
  • SYS-VERSION - Версия операционной системы.

Пользователь

  • USR-ACCOUNT - Аккаунт пользователя, который последним использовал компьютер.
  • USR-ACCOUNT-DN - Значение Distinguished Name пользователя в домене.
  • USR-DOMAIN - Доменная часть аккаунта пользователя.
  • USR-LOGIN - Часть логина в аккаунте пользователя.
  • USR-HOME - Полный путь к домашнему каталогу пользователя.
  • USR-PROFILE - Полный путь к папке профиля пользователя.
  • USR-NAME - Отображаемое имя пользователя.
  • USR-NAME-FIRST - Первая часть отображаемого имени пользователя.
  • USR-NAME-SECOND - Втор часть отображаемого имени пользователя.
  • USR-NAME-THIRD - Третья часть отображаемого имени пользователя.
  • USR-NAME-FOURTH - Четвёртая часть отображаемого имени пользователя.
  • USR-COUNTRY - Название страны пользователя.
  • USR-COUNTRY-ID - Идентификатор страны пользователя.
  • USR-CITY - Название города пользователя.
  • USR-COMPANY - Название организации пользователя.
  • USR-DEPARTMENT - Название подразделения пользователя.
  • USR-POSITION - Название должности пользователя.
  • USR-EMAIL - Адрес электронной почты пользователя.
  • USR-MOBILE - Номер мобильного телефона пользователя.
  • USR-PHONE - Номер телефона пользователя.
  • USR-INFO - Заметка о пользователе.
  • USR-SID - Идентификатор безопасности пользователя.

Компьютер

  • DEV-TYPE Тип компьютера Desktop, Notebook, Tablet, Server или Controller.
  • DEV-NAME - Заданное производителем полное название модели.
  • DEV-DESCRIPTION - Формируемое скриптом описание компьютера из его характеристик.
  • DEV-BENCHMARK - Вычисляемый скриптом рейтинг производительности компьютера.

Материнская плата

  • PCB-NAME - Заданное производителем полное название модели.
  • PCB-SERIAL - Серийный номер материнской платы.
  • PCB-BIOS-MANUFACTURE - Название производителя BIOS материнской платы.
  • PCB-BIOS-RELEASE - Дата и время прошивки BIOS материнской платы.
  • PCB-BIOS-RELEASE-DATE - Только дата прошивки BIOS материнской платы.
  • PCB-BIOS-SERIAL - Серийный номер, хранящийся в BIOS материнской платы.
  • PCB-BIOS-VERSION - Версия прошивки BIOS материнской платы.

Центральный процессор

  • CPU-ARCHITECTURE - Архитектура центрального процессора x64 и x86.
  • CPU-CACHE-L1 - Размер L1 кэша с размерностью KB, MB и так далее.
  • CPU-CACHE-L2 - Размер L2 кэша с размерностью KB, MB и так далее.
  • CPU-CACHE-L3 - Размер L3 кэша с размерностью KB, MB и так далее.
  • CPU-CORE - Количество ядер центрального процессора.
  • CPU-NAME - Заданное производителем полное название модели.
  • CPU-SOCKET - Название сокета центрального процессора.
  • CPU-SPEED - Тактовая частота с размерностью MHz, GHz и так далее.
  • CPU-SPEED-VAL - Значение тактовой частота в Hz.
  • CPU-VERSION - Версия релиза центрального процессора.

Оперативная память

  • RAM-SIZE - Объём оперативной памяти с размерностью MB, GB и так далее.
  • RAM-SIZE-VAL - Значение объёма оперативной памяти в byte.
  • RAM-SPEED - Тактовая частота с размерностью MHz, GHz и так далее.
  • RAM-SPEED-VAL - Значение тактовой частота в Hz.

Графический процессор

  • GPU-COLOR - Глубина цвета графического процессора с размерностью в bit.
  • GPU-COLOR-VAL - Значение глубины цвета графического процессора в bit.
  • GPU-FREQUENCY - Частота обновления с размерностью в Hz.
  • GPU-FREQUENCY-VAL - Значение частота обновления в Hz.
  • GPU-NAME - Заданное производителем полное название модели.
  • GPU-RESOLUTION - Разрешение экрана, подключенного к графическому процессору.
  • GPU-RESOLUTION-X - Разрешение экрана по горизонтали.
  • GPU-RESOLUTION-Y - Разрешение экрана по вертикали.
  • GPU-SIZE - Объём памяти с размерностью MB, GB и так далее.
  • GPU-SIZE-VAL - Значение объёма памяти графического процессора в byte.
  • GPU-VERSION - Версия драйвера графического процессора.

Монитор

  • MON-NAME - Заданное производителем полное название модели.
  • MON-SERIAL - Серийный номер, хранящийся в свойствах монитора.
  • MON-SIZE - Линейные размеры дисплея монитора.
  • MON-SIZE-X - Линейный размер дисплея по горизонтали в cm.
  • MON-SIZE-Y - Линейный размер дисплея по вертикали в cm.
  • MON-SIZE-Z - Линейный размер дисплея по диагонали в in.
  • MON-RELEASE - Дата и время производства монитора.
  • MON-RELEASE-DATE - Только дата производства монитора.

Сетевой адаптер

  • NET-IP-V4 - IPv4 адрес активного сетевого адаптера.
  • NET-IP-V6 - IPv6 адрес активного сетевого адаптера.
  • NET-SUBNET-V4 - IPv4 маска подсети активного сетевого адаптера.
  • NET-SUBNET-V6 - IPv6 маска подсети активного сетевого адаптера.
  • NET-GATEWAY-V4 - IPv4 шлюз активного сетевого адаптера.
  • NET-GATEWAY-V6 - IPv6 шлюз активного сетевого адаптера.
  • NET-DNS-V4 - IPv4 адрес DNS сервера сетевого адаптера.
  • NET-DNS-V6 - IPv6 адрес DNS сервера сетевого адаптера.
  • NET-DHCP-V4 - IPv4 адрес DHCP сервера локальной сети.
  • NET-DOMAIN - Домен в котором зарегистрирован компьютер.
  • NET-HOST - Зарегистрированное сетевое имя компьютера.
  • NET-HOST-DN - Значение Distinguished Name компьютера в домене.
  • NET-MAC - Физический адрес активного сетевого адаптера.
  • NET-NAME - Заданное производителем название сетевого адаптера.
  • NET-RESET - Дата и время обновления адресов в формате ДД.ММ.ГГГГ ЧЧ:ММ:СС.
  • NET-RESET-DATE - Только дата обновления адресов в формате ДД.ММ.ГГГГ.
  • NET-SPEED - Скорость подключения с размерностью Mbps, Gbps и так далее.
  • NET-SPEED-VAL - Значение скорость подключения в bps.

Жёсткий диск

  • HDD-NAME - Заданное производителем название жёсткого диска.
  • HDD-SERIAL - Серийный номер жёсткого диска.
  • HDD-SIZE - Объём жёсткого диска с размерностью MB, GB и так далее.
  • HDD-SIZE-VAL - Значение объёма жёсткого диска в byte.
  • HDD-VERSION - Версия прошивки жёсткого диска.

Твердотельный накопитель

  • SSD-NAME - Заданное производителем название твердотельного накопителя.
  • SSD-SERIAL - Серийный номер твердотельного накопителя.
  • SSD-SIZE - Объём твердотельного накопителя с размерностью MB, GB и так далее.
  • SSD-SIZE-VAL - Значение объёма твердотельного накопителя в byte.
  • SSD-VERSION - Версия прошивки твердотельного накопителя.

Сменный накопитель

  • USB-NAME - Заданное производителем название сменного накопителя.
  • USB-SERIAL - Серийный номер сменного накопителя.
  • USB-SIZE - Объём сменного накопителя с размерностью MB, GB и так далее.
  • USB-SIZE-VAL - Значение объёма сменного накопителя в byte.
  • USB-VERSION - Версия прошивки сменного накопителя.

Специализированный накопитель

  • SCM-NAME - Заданное производителем название специализированного накопителя.
  • SCM-SERIAL - Серийный номер специализированного накопителя.
  • SCM-SIZE - Объём специализированного накопителя с размерностью MB, GB и так далее.
  • SCM-SIZE-VAL - Значение объёма специализированного накопителя в byte.
  • SCM-VERSION - Версия прошивки специализированного накопителя.

Оптический привод

  • ROM-NAME - Заданное производителем название оптического привода.
  • ROM-DRIVE - Буква оптического привода (вместе с двоеточием).
  • ROM-TYPE - Тип оптического привода DVD-RW, CD и так далее.

Программное обеспечение

Браузер Google Chrome

  • APP-CHROME - Полный путь исполняемого файла приложения.
  • APP-CHROME-DIR - Полный путь каталога приложения.

Проигрыватель VLC Media Player

  • APP-VLC - Полный путь исполняемого файла приложения.
  • APP-VLC-DIR - Полный путь каталога приложения.

Приложение Spargo eFarma

  • APP-EFARMA-CLIENT - Полный путь исполняемого файла клиента.
  • APP-EFARMA-CASHER - Полный путь исполняемого файла кассы.
  • APP-EFARMA-UPDATER - Полный путь исполняемого файла сервера обновлений.
  • APP-EFARMA-LICENSE - Полный путь файла лицензии.
  • APP-EFARMA-DIR - Полный путь каталога приложения.

Приложение SoftLine Ulus

  • APP-ULUS - Полный путь исполняемого файла приложения.
  • APP-ULUS-DIR - Полный путь каталога приложения.

Приложение TeamViewer

  • APP-TEAMVIEWER-ID - Идентификатор компьютера.

Другие переменные

  • BAK-DRIVE - Буква диска для резервных копий (вместе с двоеточием).

Примеры использования

Получение данных

Вывести в консоль все созданные переменные среды в контексте текущего компьютера.

cscript env.min.js ini

Вывести в консоль все созданные переменные среды в контексте компьютера RUS000WS001.

cscript env.min.js ini \\RUS000WS001

Экспорт данных

Экспортировать все созданные переменные среды в ini файл с кодировкой CP 866 в контексте текущего компьютера.

cscript /nologo env.min.js ini > %COMPUTERNAME%.ini

Экспортировать все созданные переменные среды в ini файл с кодировкой UTF-16 LE в контексте текущего компьютера.

cscript /nologo /u env.min.js ini > %COMPUTERNAME%.ini

Экспортировать все созданные переменные среды в csv файл без заголовка и с кодировкой UTF-16 LE в контексте компьютера RUS000WS001.

cscript /nologo /u env.min.js \\RUS000WS001 csv > RUS000WS001.csv

Экспортировать все созданные переменные среды в csv файл с заголовком и с кодировкой UTF-16 LE в контексте компьютера RUS000WS001.

cscript /nologo /u env.min.js \\RUS000WS001 CSV > RUS000WS001.csv

Импорт данных

Импортировать переменные среды из ini файла с кодировкой CP 866 и вывести их в консоль.

cscript /nologo env.min.js ini@cp866 \\ ini < %COMPUTERNAME%.ini

Импортировать переменные среды из ini файла с кодировкой UTF-16 LE и затем ещё и получить переменные среды в контексте компьютера RUS000WS001 и вывести их в консоль.

cscript /nologo /u env.min.js ini@auto \\RUS000WS001 ini < RUS000WS001.ini

Импортировать переменные среды из csv файла с заголовком и с кодировкой UTF-16 LE и затем ещё и получить переменные среды в контексте компьютера RUS000WS001 и вывести их в консоль.

cscript /nologo /u env.min.js CSV@auto \\RUS000WS001 ini < RUS000WS001.csv

Использование данных

Выполнить тихую установку msi пакета с именем, соответствующим разрядности операционной системы текущего компьютера.

cscript env.min.js %SYS-ARCHITECTURE%.msi /quiet /qn /norestart

Открыть в VLC Media Player воспроизведение mp4 видео файла с именем, соответствующим логину пользователя и не дожидаться окончания воспроизведения.

wscript env.min.js nowait "%APP-VLC%" %USR-LOGIN%.mp4

Открыть в Проводнике домашний каталог пользователя, который последним использовал удалённый компьютер RUS000WS001.

wscript env.min.js \\RUS000WS001 explorer.exe "%USR-HOME%"

Инвентаризация компьютеров

Загрузить из txt файла список компьютеров и сохранить о них информацию в папке inventory в виде ini файлов.

for /f "eol=; tokens=* delims=, " %%i in (list.txt) do (
    cscript /nologo /u env.min.js \\%%i ini > inventory\%%i.ini
)

Загрузить из txt файла список компьютеров и сохранить о них информацию в один csv файл с заголовком.

cscript /nologo /u env.min.js \\ CSV > inventory.csv
for /f "eol=; tokens=* delims=, " %%i in (list.txt) do (
    cscript /nologo /u env.min.js \\%%i csv >> inventory.csv
)

Сконвертировать и объединить ini файлы из папке inventory в один tsv файл с заголовком.

cscript /nologo /u env.min.js \\ TSV > inventory.tsv
for %%i in (inventory\*.ini) do (
    cscript /nologo /u env.min.js \\ ini@auto tsv < %%i >> inventory.tsv
)

About

JScript for adding temporary variables to environment variables. Which can then be used in calling other scripts and applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published