Коллеги, каждый системный администратор сталкивался с ситуацией, когда нужно быстро собрать информацию о компьютере пользователя: узнать IP-адрес, версию ОС, объём оперативной памяти или MAC-адрес сетевой карты. Обычно мы открываем «Сведения о системе», несколько окон cmd с разными командами или просим пользователя надиктовать данные по телефону. Это отнимает время и чревато ошибками.
Команда adminmed.ru подготовила простой, но очень полезный BAT-скрипт, который автоматически собирает всю ключевую информацию о компьютере и сохраняет её в текстовый файл. Вам остаётся только попросить пользователя запустить файл и прислать результат.
🛠️ Что делает скрипт?
При запуске скрипт:
- Запрашивает номер кабинета (это единственные данные, которые нужно ввести вручную).
- Определяет:
- Имя компьютера и текущего пользователя.
- IP-адрес (IPv4).
- Версию и название операционной системы.
- Модель процессора.
- Объём оперативной памяти (в ГБ).
- Разрешение основного монитора.
- MAC-адрес сетевой карты.
- Архитектуру системы (32/64 бита).
- Сохраняет всё это в файл с именем
ИМЯ_КОМПЬЮТЕРА.txtв ту же папку, откуда был запущен скрипт. - Показывает предпросмотр сохранённых данных и через 3 секунды автоматически закрывается.
Как использовать
- Скачайте файл
collect_info.bat(ссылка в конце статьи). - Передайте его пользователю или запустите сами на нужном компьютере.
- При запуске появится окно командной строки с запросом номера кабинета:
Введите номер кабинета:
Введите номер (например,12иликаб. 301) и нажмите Enter. - Скрипт соберёт данные и создаст файл с отчётом в той же папке.
- После завершения вы увидите сообщение об успешном сохранении и небольшой предпросмотр.
- Отправьте полученный текстовый файл администратору или сохраните для инвентаризации.
Важно: Скрипт не требует прав администратора и работает на всех версиях 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-файл по ссылке ниже (правой кнопкой мыши → «Сохранить ссылку как…»):
Код этого батника:
@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.
Заключение
Этот небольшой инструмент уже помог нашей команде сэкономить часы при инвентаризации и удалённой диагностике. Надеемся, он будет полезен и вам. Если у вас есть идеи по улучшению или вы нашли ошибку — пишите в комментариях!


