Как стать автором
Обновить

Полезные мелочи Windows администратора, поиск компьютеров пользователей и не только

Время на прочтение18 мин
Количество просмотров29K

Как-то давно на хабре публиковалась статья Опытные мелочи Windows-админа. В ней рассказывалось как быстро и достаточно эффективно находить компьютеры на которых залогинился тот или иной пользователь.

Демонстрация работы скрипта env.search
Демонстрация работы скрипта env.search

Мне эта идея понравилась, т.к. всё делается достаточно просто, быстро и без модификации схемы Active Directory. Я постепенно улучшал изложенные в статье подходы и в итоге появились три скрипта, которыми я и хочу поделится с вами.

Вывод в консоль переменных созданных скриптом env
Вывод в консоль переменных созданных скриптом env
  1. env – с помощью этого скрипта получаем данные по компьютеру и добавляем эти данные во временные переменные среды.

  2. env.send – с помощью этого скрипта данные из переменных среды передаём в описание компьютера в Active Directory.

  3. env.search – с помощью этого скрипта ищем нужный нам компьютер в Active Directory и подключаемся к нему.

На самом деле скрипты более универсальные и с помощью них можно делать не только изложенные выше действия, а например:

Результат работы скрипта env.send
Результат работы скрипта env.send
  • Можно делать инвентаризацию компьютеров по сети в csv файл или в папку с ini файлами.

  • При отсутствии Active Directory можно по данным из переменных среды автоматически создавать ярлычок, который в своём названии будут содержать нужные данные по компьютеру, а при клике подключатся к нему или делать другое полезное системному администратору действие.

  • Поиск нужных компьютеров можно выполнять не только в Active Directory, но и в простом хранилище в виде папки с ini файлами.

  • А так же можно использовать временные переменные среды в других скриптах, например для установки программного обеспечения нужной разрядности и т.д.

Ниже привожу описание всех скриптов, что бы можно было более детально ознакомится с их возможностями. Надеюсь что они будут вам полезны, так же как мне. Сами скрипты и их исходные коды доступны в моём профиле на GitHub.

env

Описание

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 - Последующие команды выполнить без ожидания.

  • ... - Далее указывается командная строка для выполнения, в которой будут доступны эти переменные среды.

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

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

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

  • 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-DOMAIN - Доменная часть аккаунта пользователя.

  • USR-LOGIN - Часть логина в аккаунте пользователя.

  • USR-HOME - Полный путь к домашнему каталогу пользователя.

  • USR-PROFILE - Полный путь к папке профиля пользователя.

  • USR-NAME - Отображаемое имя пользователя.

  • USR-NAME-FIRST - Первая часть отображаемого имени пользователя.

  • USR-NAME-SECOND - Втор часть отображаемого имени пользователя.

  • USR-NAME-THIRD - Третья часть отображаемого имени пользователя.

  • USR-NAME-FOURTH - Четвёртая часть отображаемого имени пользователя.

  • USR-SID - Идентификатор безопасности пользователя.

Компьютер

  • 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 кэша с размерностью КБМБ и так далее.

  • CPU-CACHE-L2 - Размер L2 кэша с размерностью КБМБ и так далее.

  • CPU-CACHE-L3 - Размер L3 кэша с размерностью КБМБ и так далее.

  • CPU-CORE - Количество ядер центрального процессора.

  • CPU-NAME - Заданное производителем полное название модели.

  • CPU-SOCKET - Название сокета центрального процессора.

  • CPU-SPEED - Тактовая частота с размерностью МГцГГц и так далее.

  • CPU-SPEED-VAL - Значение тактовой частота в герцах.

  • CPU-VERSION - Версия релиза центрального процессора.

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

  • RAM-SIZE - Объём оперативной памяти с размерностью МБГБ и так далее.

  • RAM-SIZE-VAL - Значение объёма оперативной памяти в байтах.

  • RAM-SPEED - Тактовая частота с размерностью МГцГГц и так далее.

  • RAM-SPEED-VAL - Значение тактовой частота в герцах.

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

  • GPU-COLOR - Глубина цвета графического процессора с размерностью в битах.

  • GPU-COLOR-VAL - Значение глубины цвета графического процессора в битах.

  • GPU-FREQUENCY - Частота обновления с размерностью в Гц.

  • GPU-FREQUENCY-VAL - Значение частота обновления в герцах.

  • GPU-NAME - Заданное производителем полное название модели.

  • GPU-RESOLUTION - Разрешение экрана, подключенного к графическому процессору.

  • GPU-RESOLUTION-X - Разрешение экрана по горизонтали.

  • GPU-RESOLUTION-Y - Разрешение экрана по вертикали.

  • GPU-SIZE - Объём памяти с размерностью МБГБ и так далее.

  • GPU-SIZE-VAL - Значение объёма памяти графического процессора в байтах.

  • GPU-VERSION - Версия драйвера графического процессора.

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

  • 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 - Скорость подключения с размерностью Мбит/сГбит/с и так далее.

  • NET-SPEED-VAL - Значение скорость подключения в битах в секунду.

Жёсткий диск

  • HDD-NAME - Заданное производителем название жёсткого диска.

  • HDD-SERIAL - Серийный номер жёсткого диска.

  • HDD-SIZE - Объём жёсткого диска с размерностью МБГБ и так далее.

  • HDD-SIZE-VAL - Значение объёма жёсткого диска в байтах.

  • HDD-VERSION - Версия прошивки жёсткого диска.

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

  • SSD-NAME - Заданное производителем название твердотельного накопителя.

  • SSD-SERIAL - Серийный номер твердотельного накопителя.

  • SSD-SIZE - Объём твердотельного накопителя с размерностью МБГБ и так далее.

  • SSD-SIZE-VAL - Значение объёма твердотельного накопителя в байтах.

  • SSD-VERSION - Версия прошивки твердотельного накопителя.

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

  • USB-NAME - Заданное производителем название сменного накопителя.

  • USB-SERIAL - Серийный номер сменного накопителя.

  • USB-SIZE - Объём сменного накопителя с размерностью МБГБ и так далее.

  • USB-SIZE-VAL - Значение объёма сменного накопителя в байтах.

  • USB-VERSION - Версия прошивки сменного накопителя.

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

  • SCM-NAME - Заданное производителем название специализированного накопителя.

  • SCM-SERIAL - Серийный номер специализированного накопителя.

  • SCM-SIZE - Объём специализированного накопителя с размерностью МБГБ и так далее.

  • SCM-SIZE-VAL - Значение объёма специализированного накопителя в байтах.

  • SCM-VERSION - Версия прошивки специализированного накопителя.

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

  • ROM-NAME - Заданное производителем название оптического привода.

  • ROM-DRIVE - Буква оптического привода (вместе с двоеточием).

  • ROM-TYPE - Тип оптического привода DVD-RWCD и так далее.

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

Браузер 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
)

env.send

Описание

JScript для отправки переменных среды в объект Active Directory по протоколу LDAP или в файл ярлыка в папке. Основная задача скрипта сохранить собранные данные с помощью другого скрипта env в любой атрибут (или атрибуты) объекта Active Directory или на основании этих данных создать по шаблону ярлык в папке. Чтобы затем использовать этот ярлык или данные из Active Directory в целях системного администрирования.

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

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

cscript env.send.min.js <mode> <container> [<output>...] \\ [<input>...]
  • <mode> - Режим отправки переменных (заглавное написание выполняет только эмуляцию).

    • link - Отправляет переменных среды в обычный ярлык.

    • ldap - Отправляет переменных среды в объект Active Directory.

  • <container> - Путь к папке или guid (допускается указание пустого значения).

  • <output> - Изменяемые свойства объекта в формате key=value c подстановкой переменных %ENV%. Первое свойство считается обязательным, т.к. по его значению осуществляется поиск объектов. Для режима link обязательно наличие свойств name и targetpath, а в свойстве arguments одинарные кавычки заменяются на двойные.

  • <input> - Значения по умолчанию для переменных среды в формате key=value.

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

Предполагается использовать данный скрипт совместно с другим скриптом env, поэтому сразу в примерах будут использоваться два скрипта.

Когда компьютер в домене, то в групповых политиках при входе пользователя в компьютер, можно прописать следующий скрипт, что бы информация о компьютере и пользователе прописалась в атрибуты описания и местоположения компьютера в Active Directory в пределах Organizational Unit c guid {ABCD1234-111B-14DC-ABAC-4578F1145541}. Что бы затем быстро находить нужный компьютер пользователя или анализировать собранную информацию. Что бы узнать guid контейнера в Active Directory можно воспользоваться программой Active Directory Explorer. Так же не забудьте пользователям выдать права на изменения нужных атрибутов компьютеров в соответствующем контейнере.

wscript env.min.js wscript env.send.min.js ldap {ABCD1234-111B-14DC-ABAC-4578F1145541} cn="%NET-HOST%" description="%USR-NAME-THIRD% | %USR-NAME-FIRST% %USR-NAME-SECOND% | %DEV-NAME% | %PCB-BIOS-SERIAL% | %PCB-BIOS-RELEASE-DATE% | %NET-MAC% | %DEV-BENCHMARK% | %DEV-DESCRIPTION%" location="%USR-NAME-THIRD%" \\ USR-NAME-FIRST="Terminal" USR-NAME-SECOND="login" USR-NAME-THIRD="Location" PCB-BIOS-RELEASE-DATE="XX.XX.XXXX" NET-MAC="XX:XX:XX:XX:XX:XX" 

Когда компьютер не в домене то в планировщике задач, можно прописать следующий скрипт, чтобы информация о компьютере и пользователе сохранялась в виде ярлычка в сетевой папке. И затем использовать эти ярлычки чтобы одним кликом разбудить WOL пакетом нужный компьютер и подключится к нему через Помощник для оказания технической поддержки. Для отправки WOL пакета можно использовать утилиту Wake On Lan.

wscript env.min.js wscript env.send.min.js link \\server\links name="%NET-HOST% - %USR-NAME-FIRST% %USR-NAME-SECOND% ! %DEV-NAME% ! %PCB-BIOS-SERIAL% ! %PCB-BIOS-RELEASE-DATE% ! %DEV-BENCHMARK%" targetPath="%WINDIR%\System32\cmd.exe" arguments="/c wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0 & start msra.exe /offerRA %NET-HOST%" workingDirectory="C:\Scripts" windowStyle=7 iconLocation="%WINDIR%\System32\msra.exe,0" description="%USR-NAME-THIRD%" \\ USR-NAME-FIRST="Terminal" USR-NAME-SECOND="login" PCB-BIOS-RELEASE-DATE="XX.XX.XXXX" NET-MAC="XX:XX:XX:XX:XX:XX"

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

for /f "eol=; tokens=* delims=, " %%i in (list.txt) do cscript /nologo /u env.min.js \\%%i silent cscript env.send.min.js link C:\Links name="%NET-HOST% - %USR-NAME-FIRST% %USR-NAME-SECOND% ! %DEV-NAME% ! %PCB-BIOS-SERIAL% ! %PCB-BIOS-RELEASE-DATE% ! %DEV-BENCHMARK%" targetPath="%WINDIR%\System32\cmd.exe" arguments="/c wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0 & start msra.exe /offerRA %NET-HOST%" workingDirectory="C:\Scripts" windowStyle=7 iconLocation="%WINDIR%\System32\msra.exe,0" description="%USR-NAME-THIRD%" \\ USR-NAME-FIRST="Terminal" USR-NAME-SECOND="login" PCB-BIOS-RELEASE-DATE="XX.XX.XXXX" NET-MAC="XX:XX:XX:XX:XX:XX"

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

for /f "eol=; tokens=* delims=, " %%i in (list.txt) do cscript /nologo /u env.min.js \\%%i > C:\Inventory\%%i.ini
for /f "eol=; tokens=* delims=, " %%i in (list.txt) do cscript /u env.min.js ini@auto silent \\ cscript env.send.min.js link C:\Links name="%NET-HOST% - %USR-NAME-FIRST% %USR-NAME-SECOND% ! %DEV-NAME% ! %PCB-BIOS-SERIAL% ! %PCB-BIOS-RELEASE-DATE% ! %DEV-BENCHMARK%" targetPath="%WINDIR%\System32\cmd.exe" arguments="/c wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0 & start msra.exe /offerRA %NET-HOST%" workingDirectory="C:\Scripts" windowStyle=7 iconLocation="%WINDIR%\System32\msra.exe,0" description="%USR-NAME-THIRD%" \\ USR-NAME-FIRST="Terminal" USR-NAME-SECOND="login" PCB-BIOS-RELEASE-DATE="XX.XX.XXXX" NET-MAC="XX:XX:XX:XX:XX:XX" < C:\Inventory\%%i.ini

env.search

Описание

JScript для поиска данных для переменных среды в объектах Active Directory по протоколу LDAP или в папке с ini файлами. Основная задача скрипта найти, добавить в переменные среды данные по компьютеру и используя эти переменные, выполнить необходимую команду в целях системного администрирования. Данные по компьютерам можно собрать с помощью другого скрипта env и выгрузить их в ini файлы в папке или добавить в атрибуты объектов Active Directory с помощью другого скрипта env.send.

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

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

cscript env.search.min.js <mode> <container> [<option>...] [<input>...] \\ [<action>...]
  • <mode> - Режим поиска данных для переменных среды.

    • folder - Получение данных из папки с ini файлами.

    • ldap - Получение данных из Active Directory.

  • <container> - Путь к папке или guid (допускается указание пустого значения).

  • <option> - Дополнительные опции (может быть несколько, порядок не важен).

    • search - Поисковой запрос (можно опустить, будет запрошен в процессе).

    • index - Номер компьютера в выборке (можно опустить, будет запрошен в процессе).

    • action - Ключ действия (можно опустить, будет запрошен в процессе).

    • item - Шаблон представления компьютеров в выборке (доступны переменные %ENV%).

    • unit - Шаблон представления других списков (доступны переменные %ENV%).

    • service - Имя службы, которую нужно запустить перед выполнением команды действия.

    • check - Флаг проверки доступности целевых компьютеров.

    • user - Флаг запроса информации по пользователю (только для режима ldap).

    • noalign - Флаг запрета выравнивания выборок и списков.

    • color - Флаг использования цветового оформления.

  • <input> - Шаблоны для получения данных из атрибутов объекта (только для режима ldap).

  • <action> - Действия в формате ключ и команда (доступны переменные %ENV%).

Поиск объектов

Если получение данных идёт в режиме folder, то поиск нужных объектов в ini файлах производится по следующим ключам: NET-MACSYS-KEYNET-HOSTDEV-NAMENET-IP-V4SYS-VERSIONUSR-ACCOUNTDEV-DESCRIPTIONPCB-BIOS-SERIALPCB-BIOS-SERIAL и USR-NAME, причём по последнему ключу поисковой запросе ещё проверяется в транслитерации.

Если получение данных идёт в режиме ldap, то поиск нужных объектов производится по следующим атрибутам: nameoperatingSystemVersion и description, причём по последнему атрибуту поисковой запросе ещё проверяется в транслитерации.

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

Скрипт добавляет временные переменные в среду процесса. В режиме folder переменные добавляются по ключам в ini файле. В режиме ldap добавляются описанные ниже переменные. Если нет данных для формирования переменной, то переменная не создаётся. Если задана дополнительная опция user, то по ключам USR-NAME-FIRST и USR-NAME-SECOND дополнительно запрашиваются данные о пользователе. Применяя шаблоны для получения данных из атрибутов объекта, можно получить любые данные и добавить их в любые переменные. Причём данные из одного атрибута по шаблону можно разделить на несколько переменных.

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

  • SYS-NAME - Заданное производителем полное название операционной системы.

  • SYS-VERSION - Версия операционной системы.

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

  • USR-NAME - Отображаемое имя пользователя.

  • USR-ACCOUNT - Аккаунт пользователя.

  • USR-SID - Идентификатор безопасности пользователя.

  • USR-COUNTRY - Название страны пользователя.

  • USR-COUNTRY-ID - Идентификатор страны пользователя.

  • USR-CITY - Название города пользователя.

  • USR-COMPANY - Название организации пользователя.

  • USR-DEPARTMENT - Название подразделения пользователя.

  • USR-POSITION - Название должности пользователя.

  • USR-EMAIL - Адрес электронной почты пользователя.

  • USR-MOBILE - Номер мобильного телефона пользователя.

  • USR-PHONE - Номер телефона пользователя.

  • USR-HOME - Полный путь к домашнему каталогу пользователя.

  • USR-INFO - Заметка о пользователе.

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

  • NET-HOST - Зарегистрированное сетевое имя компьютера.

  • NET-HOST-DN - Значение Distinguished Name компьютера в домене.

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

  • TMP-CHECK - Время отклика компьютера на запрос проверки доступности.

  • TMP-INDEX - Порядковый номер компьютера в выборке (или элемента в списке).

  • TMP-KEY - Ключ элемента в списке.

  • TMP-VALUE - Значение элемента в списке.

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

Вывести предложение для ввода поискового запроса, номера компьютера и выбора последующего действия. Поиск осуществлять в Active Directory в пределах Organizational Unit c guid {ABCD1234-111B-14DC-ABAC-4578F1145541}. Для отображаемой информации использовать оформление цветом, найденные компьютеры проверять на доступность и запрашивать информацию о пользователе. Что бы узнать guid контейнера в Active Directory можно воспользоваться программой Active Directory Explorer.

cscript env.search.min.js ldap {0C9E6295-C543-40D1-BD6D-3F2BDF54F7A9} color check user item=" %TMP-INDEX% | %TMP-CHECK% | %NET-HOST% | %USR-NAME% | %USR-MOBILE% | %USR-INFO% | %DEV-NAME%" unit=" %TMP-INDEX% | %TMP-KEY% | %TMP-VALUE%" description="%USR-NAME-THIRD% | %USR-NAME-FIRST% %USR-NAME-SECOND% | %DEV-NAME% | %PCB-BIOS-SERIAL% | %PCB-BIOS-RELEASE-DATE% | %NET-MAC% | %DEV-BENCHMARK% | %DEV-DESCRIPTION%" \\ Помощник="msra.exe /offerRA %NET-HOST%" Подключится="mstsc.exe /v:%NET-HOST%" Доступность="ping.exe %NET-HOST%" Разбудить="wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0" Сведения="msinfo32.exe /computer %NET-HOST%" Управление="compmgmt.msc /computer=%NET-HOST%"

Вывести предложение для ввода поискового запроса, номера компьютера и выбора последующего действия. Поиск осуществлять в папке с ini файлами. Для отображаемой информации использовать оформление цветом.

cscript env.search.min.js folder "C:\Inventory" color item=" %TMP-INDEX% | %NET-HOST% | %USR-NAME% | %DEV-DESCRIPTION%" unit=" %TMP-INDEX% | %TMP-KEY% | %TMP-VALUE%" \\ Помощник="msra.exe /offerRA %NET-HOST%" Подключится="mstsc.exe /v:%NET-HOST%" Доступность="ping.exe %NET-HOST%" Разбудить="wolcmd.exe %NET-MAC% 192.168.0.255 255.255.255.0" Сведения="msinfo32.exe /computer %NET-HOST%" Управление="compmgmt.msc /computer=%NET-HOST%"

Сохранить в файл список всех компьютеров расположенных в Active Directory в пределах Organizational Unit c guid {ABCD1234-111B-14DC-ABAC-4578F1145541}.

cscript /nologo search.min.js ldap {ABCD1234-111B-14DC-ABAC-4578F1145541} search="" noalign > list.txt

Подключиться через TightVNC к первому найденному компьютеру по поисковому запросу Иванов. Поиск осуществлять в Active Directory в пределах Organizational Unit c guid {ABCD1234-111B-14DC-ABAC-4578F1145541}. Перед подключением на удалённом компьютере запустить службу с именем tvnserver, а после отключения остановить её.

wscript env.search.min.js ldap {0C9E6295-C543-40D1-BD6D-3F2BDF54F7A9} service=tvnserver search="Иванов" index=1 action=TightVNC \\ TightVNC="tvnviewer.exe -host=%NET-HOST%"
Теги:
Хабы:
Всего голосов 21: ↑21 и ↓0+21
Комментарии8

Публикации

Истории

Работа

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань