Top.Mail.Ru
Утилита от adminmed.ru: быстрый сбор информации о компьютере (BAT-скрипт) — ADMINMED.ru

Утилита от adminmed.ru: быстрый сбор информации о компьютере (BAT-скрипт)

Коллеги, каждый системный администратор сталкивался с ситуацией, когда нужно быстро собрать информацию о компьютере пользователя: узнать IP-адрес, версию ОС, объём оперативной памяти или MAC-адрес сетевой карты. Обычно мы открываем «Сведения о системе», несколько окон cmd с разными командами или просим пользователя надиктовать данные по телефону. Это отнимает время и чревато ошибками.

Команда adminmed.ru подготовила простой, но очень полезный BAT-скрипт, который автоматически собирает всю ключевую информацию о компьютере и сохраняет её в текстовый файл. Вам остаётся только попросить пользователя запустить файл и прислать результат.

🛠️ Что делает скрипт?

При запуске скрипт:

  1. Запрашивает номер кабинета (это единственные данные, которые нужно ввести вручную).
  2. Определяет:
    • Имя компьютера и текущего пользователя.
    • IP-адрес (IPv4).
    • Версию и название операционной системы.
    • Модель процессора.
    • Объём оперативной памяти (в ГБ).
    • Разрешение основного монитора.
    • MAC-адрес сетевой карты.
    • Архитектуру системы (32/64 бита).
  3. Сохраняет всё это в файл с именем ИМЯ_КОМПЬЮТЕРА.txt в ту же папку, откуда был запущен скрипт.
  4. Показывает предпросмотр сохранённых данных и через 3 секунды автоматически закрывается.

Как использовать

  1. Скачайте файл collect_info.bat (ссылка в конце статьи).
  2. Передайте его пользователю или запустите сами на нужном компьютере.
  3. При запуске появится окно командной строки с запросом номера кабинета:
    Введите номер кабинета:
    Введите номер (например, 12 или каб. 301) и нажмите Enter.
  4. Скрипт соберёт данные и создаст файл с отчётом в той же папке.
  5. После завершения вы увидите сообщение об успешном сохранении и небольшой предпросмотр.
  6. Отправьте полученный текстовый файл администратору или сохраните для инвентаризации.

Важно: Скрипт не требует прав администратора и работает на всех версиях Windows (7/8/10/11).


🔍 Пример полученного отчёта

=== ИНФОРМАЦИЯ О КОМПЬЮТЕРЕ ===

Имя компьютера: PC-123
Пользователь: ivanov
Кабинет: 12
Дата и время: 19.03.2026 14:35:22
IP-адрес: 192.168.1.45

--- ОПЕРАЦИОННАЯ СИСТЕМА ---
OS Name: Windows 10 Pro
OS Version: 10.0.19045

--- ПРОЦЕССОР ---
Processor: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz

--- ОПЕРАТИВНАЯ ПАМЯТЬ ---
Total RAM: 16 GB

--- РАЗРЕШЕНИЕ МОНИТОРА ---
Resolution: 1920 x 1080

--- СЕТЕВАЯ ИНФОРМАЦИЯ ---
MAC-адрес: 00-1A-2B-3C-4D-5E

--- ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ---
Запуск от имени: WORKGROUP\ivanov
Архитектура: 64-bit

🧠 Разбор кода (для тех, кому интересно)

Скрипт написан на стандартном языке командной строки Windows (batch) с небольшими вставками PowerShell для более точного получения некоторых данных.

  • Кодировка: chcp 65001 переключает консоль на UTF-8, чтобы корректно отображались русские буквы.
  • Запрос кабинета: простой set /p с проверкой на пустой ввод.
  • IP-адрес: сначала пытается получить через ipconfig | findstr IPv4, если не находит — использует PowerShell (более надёжный способ).
  • Операционная система: извлекается из реестра (reg query).
  • Процессор: через PowerShell получает точное название из WMI.
  • Оперативная память: пытается рассчитать через wmic, если не получается — через PowerShell.
  • Разрешение монитора: использует .NET-класс System.Windows.Forms.Screen в PowerShell.
  • MAC-адрес: команда getmac даёт физический адрес активного адаптера.
  • Сохранение: вся информация перенаправляется в файл с именем %COMPUTERNAME%.txt в папку, где лежит скрипт.
  • Автозакрытие: timeout /t 3 /nobreak >nul делает паузу 3 секунды перед выходом.

🚀 Возможные доработки

Вы можете легко модифицировать скрипт под свои нужды. Например:

  • Добавить серийный номер компьютера: можно получить через wmic bios get serialnumber.
  • Собирать список установленного ПО: команда wmic product get name,version.
  • Отправлять файл на FTP или в сетевую папку: добавить копирование после создания.
  • Упаковать в EXE: с помощью Bat To Exe Converter для удобства пользователей.

📥 Скачать скрипт

Вы можете скачать готовый BAT-файл по ссылке ниже (правой кнопкой мыши → «Сохранить ссылку как…»):

👉 collect_info.bat

Код этого батника:

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: Для корректного отображения в UTF-8
echo Сбор информации о компьютере…
echo.

:: Получаем путь к папке, где находится bat-файл
set «SCRIPT_PATH=%~dp0»
set «FILENAME=%COMPUTERNAME%.txt»
set «FULL_PATH=%SCRIPT_PATH%%FILENAME%»

echo Файл будет сохранен в: %SCRIPT_PATH%
echo.

:ask_cabinet
set /p «CABINET=Введите номер кабинета: «

:: Проверка, что введен номер кабинета
if «%CABINET%»==»» (
echo [ОШИБКА] Номер кабинета не может быть пустым!
timeout /t 2 /nobreak >nul
goto ask_cabinet
)

:: Удаляем возможные пробелы
set «CABINET=%CABINET: =%»

:: Получение IP-адреса
set «IP_ADDR=»
for /f «tokens=2 delims=:» %%a in (‘ipconfig ^| findstr /c:»IPv4″ ^| findstr /v «Autoconfiguration»‘) do (
set «temp_ip=%%a»
set «temp_ip=!temp_ip: =!»
if not «!temp_ip!»==»» (
set «IP_ADDR=!temp_ip!»
)
)

:: Если не нашли через ipconfig, пробуем через PowerShell
if not defined IP_ADDR (
for /f %%a in (‘powershell -command «(Get-NetIPAddress -AddressFamily IPv4 ^| Where-Object { $_.InterfaceAlias -notlike ‘Loopback‘ } ^| Select-Object -First 1).IPAddress» 2^>nul’) do (
set «IP_ADDR=%%a»
)
)

(
echo === ИНФОРМАЦИЯ О КОМПЬЮТЕРЕ ===
echo.
echo Имя компьютера: %COMPUTERNAME%
echo Пользователь: %USERNAME%
echo Кабинет: %CABINET%
echo Дата и время: %DATE% %TIME%
if defined IP_ADDR (
echo IP-адрес: %IP_ADDR%
) else (
echo IP-адрес: Не удалось определить
)
echo.

:: --- ОПЕРАЦИОННАЯ СИСТЕМА ---
echo --- ОПЕРАЦИОННАЯ СИСТЕМА ---
for /f "tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do echo OS Name: %%b
for /f "tokens=2 delims=[]" %%a in ('ver 2^>nul') do echo OS Version: %%a
echo.

:: --- ПРОЦЕССОР ---
echo --- ПРОЦЕССОР ---
for /f "delims=" %%a in ('powershell -command "(Get-WmiObject Win32_Processor).Name" 2^>nul') do echo Processor: %%a
echo.

:: --- ОПЕРАТИВНАЯ ПАМЯТЬ ---
echo --- ОПЕРАТИВНАЯ ПАМЯТЬ ---
set "MEM_GB="

:: Метод 1: через WMIC
for /f "skip=1 tokens=*" %%a in ('wmic computersystem get totalphysicalmemory /value 2^>nul') do (
    set "line=%%a"
    if not "!line!"=="" if "!line:~0,17!"=="TotalPhysicalMemory" (
        set "MEM_BYTES=!line:~18!"
    )
)

if defined MEM_BYTES (
    set /a MEM_GB=!MEM_BYTES!/1073741824
    echo Total RAM: !MEM_GB! GB
) else (
    :: Метод 2: через PowerShell
    for /f %%a in ('powershell -command "[math]::Round((Get-CimInstance Win32_ComputerSystem).TotalPhysicalMemory / 1GB, 0)" 2^>nul') do (
        echo Total RAM: %%a GB
    )
    if errorlevel 1 (
        echo Total RAM: Не удалось определить
    )
)
echo.

:: --- РАЗРЕШЕНИЕ МОНИТОРА ---
echo --- РАЗРЕШЕНИЕ МОНИТОРА ---
powershell -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Width; [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Height" 2>nul > "%temp%\res.tmp"
if exist "%temp%\res.tmp" (
    set /p HORZ_RES=< "%temp%\res.tmp"
    for /f "skip=1 tokens=*" %%a in ('type "%temp%\res.tmp"') do set VERT_RES=%%a
    del "%temp%\res.tmp" 2>nul
    if defined HORZ_RES if defined VERT_RES (
        echo Resolution: !HORZ_RES! x !VERT_RES!
    ) else (
        echo Resolution: Не удалось определить
    )
) else (
    echo Resolution: Не удалось определить
)

:: --- СЕТЕВАЯ КАРТА ---
echo.
echo --- СЕТЕВАЯ ИНФОРМАЦИЯ ---
echo MAC-адрес: 
for /f "tokens=2 delims= " %%a in ('getmac /v /fo list ^| findstr /i "Физический"') do echo %%a

:: --- ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ---
echo.
echo --- ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ---
echo Запуск от имени: %USERDOMAIN%\%USERNAME%
echo Архитектура: 
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" (
    echo 64-bit
) else if "%PROCESSOR_ARCHITECTURE%"=="x86" (
    echo 32-bit
) else (
    echo %PROCESSOR_ARCHITECTURE%
)

) > «%FULL_PATH%»

:: Проверка результата
echo.
if exist «%FULL_PATH%» (
echo [OK] Информация сохранена в текущую папку:
echo %FULL_PATH%
echo.
echo [ПРЕДПРОСМОТР] Последние 5 строк файла:
echo —————————————-
for /f «skip=1 tokens=*» %%a in (‘type «%FULL_PATH%»‘) do (
set /a line_count+=1
if !line_count! gtr 15 echo %%a
)
echo —————————————-

:: Пауза 3 секунды перед закрытием
timeout /t 3 /nobreak >nul

) else (
echo [ОШИБКА] Не удалось сохранить файл в текущую папку!
echo Попытка сохранения на рабочий стол…

:: Альтернативное сохранение на рабочий стол
set "DESKTOP_PATH=%USERPROFILE%\Desktop"
set "DESKTOP_FULL_PATH=%DESKTOP_PATH%\%FILENAME%"

copy /y "%FULL_PATH%" "%DESKTOP_FULL_PATH%" >nul 2>&1

if exist "%DESKTOP_FULL_PATH%" (
    echo [OK] Файл сохранен на рабочий стол:
    echo     %DESKTOP_FULL_PATH%
    timeout /t 3 /nobreak >nul
) else (
    echo [ОШИБКА] Не удалось сохранить файл!
    timeout /t 5 /nobreak >nul
)

)

:: Автоматическое закрытие
exit

Или скопировать код из листинга выше и сохранить его в блокноте с расширением .bat.


Заключение

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

Добавить комментарий

© 2026 ADMINMED.ru

Login





Loading...

Top.Mail.Ru
👁 0
  Яндекс.Метрика