Технические подробности под катом.
Немного воды
Для понимания на чём же у нас работают люди неплохо бы иметь информацию о "железе" и кое-каких других данных с компьютеров пользователей. Чтобы не лазить на каждый комп Radmin-ом и не отвлекать пользователей от работы, можно воспользоваться утилитами командной строки.
К сожалению, работает только на Windows XP и Windows Server 2003. Для Windows 7 на целевом компьютере нужно совершать дополнительные действия, то есть всё равно лезть Radmin-ом, т.е. весь смысл затеи теряется.
Необходимое ПО
Кроме собственно скриптов нужно следующее ПО:
- Утилита CPU-Z. Можно взять на любимом файл-сервере. Или на сайте разработчика: http://www.cpuid.com/softwares/cpu-z.html Работает без установки, просто распаковать в любимый каталог.
ВАЖНО! В файле cpuz.ini нужно изменить параметр CheckUpdates=0. Если будет стоять 1, то утилита полезет проверять обновления, будет спрашивать всякое, и ничего не получится. - Утилита PsExec из комплекта SysinternalsSuite. Также можно взять на любимом файл-сервере. Или на сайте разработчика: https://technet.microsoft.com/ru-ru/library/bb545021.aspx Работает без установки, просто распаковать в любимый каталог.
Структура каталогов
- d:\Programs\cmd\inventory\
- inventory.cmd
- cpu-z\
- cpuz.ini
- cpuz_readme.txt
- cpuz_x32.exe
- cpuz_x64.exe
- sysinfo.cmd
SysinternalsSuite в этой структуре не обязательно, путь к утилите PsExec указывается в скрипте.
Параметры запуска
На локальной машине запускается файл inventory.cmd с параметром - IP-адрес целевого компьютера, т.е. того, с которого будем собирать информацию:
inventory.cmd 192.168.0.1
Без передаваемого параметра скрипт не запустится.
Скрипты
inventory.cmd
@ECHO OFF
REM Проверяем на отсутствие IP. Без этого параметра скрипт не работает
IF "%1" EQU "" (
ECHO Нужно ввести IP компьютера
GOTO END
)
REM Установка переменных
SETLOCAL
REM Буква, на которую будет назначен сетевой диск
SET NET_DRIVE=T:
REM Откуда брать CPU-Z для копирования на целевой компьютер
SET CPUZ="d:\Programs\cmd\inventory\cpu-z"
REM Где лежит PsExec
SET PSEXEC="d:\Programs\SysinternalsSuite\PsExec.exe"
REM Собственно, скрипт
REM Подключаем диск C: на целевом компьютере как сетевой диск
NET USE %NET_DRIVE% \\%1\c$ /user:Администратор password /persistent:no
REM Создаём на целевом компьютере каталог, в котором будет работать скрипт, собирающий сведения
IF NOT EXIST %NET_DRIVE%\INVENTORY\nul MD %NET_DRIVE%\INVENTORY
IF NOT EXIST %NET_DRIVE%\INVENTORY\cpu-z\nul MD %NET_DRIVE%\INVENTORY\cpu-z
REM Копируем на целевой компьютер каталог с утилитой CPU-Z и скриптом, собирающим сведения
XCOPY /E %CPUZ% %NET_DRIVE%\INVENTORY\cpu-z
REM С помощью утилиты PsExec запускаем на целевом компьютере скрипт, собирающий сведения
%PSEXEC% \\%1 -u Администратор -p password cmd /c c:\Inventory\cpu-z\sysinfo.cmd
REM Удаляем следы присутствия на целевом компьютере
%PSEXEC% \\%1 -u Администратор -p password cmd /c RD /S /Q C:\inventory
REM После завершения работы отключаем сетевой диск
NET USE %NET_DRIVE% /d /y
REM Подключаем как сетевой диск каталог на файловом сервере с результатом работы
NET USE I: \\192.168.0.10\temp\inventory /user:username userpassword /persistent:no
START explorer I:\
:END
- Скрипт должен быть в кодировке OEM866 (DOS), иначе не будут распознаны кириллические символы, например, "Администратор".
- Скрипт создаёт на целевом компьютере, на диске C:, необходимую структуру каталогов, копирует туда утилиту CPU-Z и скрипт sysinfo.cmd.
- Затем с помощью утилиты PsExec запускает на целевом компьютере скрипт sysinfo.cmd.
- Результаты работы скрипта sysinfo.cmd сохраняются на файл-сервер.
- После завершения скрипта sysinfo.cmd на целевом компьютере удаляется созданная структура каталогов.
- Подключается сетевым диском каталог на файл-сервере с результатами работы скрипта sysinfo.cmd и открывается Explorer с этим каталогом.
sysinfo.cmd
@ECHO OFF
REM Подключаем как сетевой диск каталог на файл-сервере для сохранения результатов работы
NET USE Z: \\192.168.0.10\temp\inventory /user:username userpassword /persistent:no
REM Запускаем CPU-Z в режиме без GUI, зато с сохранением результатов в файл
REM В качестве имени файла используется имя компьютера из системной переменной %COMPUTERNAME%
%~dp0\cpuz_x32.exe -txt=Z:\%COMPUTERNAME%
REM Недостающую информацию даст встроенная в Windows команда systeminfo
systeminfo >> Z:\%COMPUTERNAME%.txt
REM А эти команды помогут понять есть ли у пользователя права локального администратора
net localgroup Администраторы >> Z:\%COMPUTERNAME%.txt
net localgroup Пользователи >> Z:\%COMPUTERNAME%.txt
REM Отключаем сетевой диск
NET USE Z: /d /y
:END
- Скрипт должен быть в кодировке OEM866 (DOS), иначе не будут распознаны кириллические символы, например, "Администратор".
- Что именно делает скрипт подробно написано в комментариях в теле скрипта.
Комментариев нет :
Отправить комментарий