Как проверить температуру видеокарты через командную строку: полное руководство

Контроль температуры видеокарты — критически важная задача для геймеров, майнеров и специалистов по 3D-рендерингу. Перегрев GPU приводит к троттлингу (автоматическому снижению частот), артефактам на экране и даже выходу чипа из строя. Большинство пользователей привыкли использовать программы вроде MSI Afterburner или HWMonitor, но что делать, если нужно получить данные без установки дополнительного ПО? Командная строка Windows (CMD) предлагает несколько скрытых способов мониторинга температуры — и мы раскроем их все.

В этой статье вы найдёте 5 рабочих методов проверки температуры через консоль: от встроенных инструментов Windows до скриптов на PowerShell и WMI. Мы разберём нюансы для видеокарт NVIDIA, AMD Radeon и Intel Arc, а также объясним, почему показания могут отличаться от данных в специализированных утилитах. Если вы администрируете сервер без GUI или просто предпочитаете работать в терминале — этот гайд для вас.

Почему командная строка лучше графических утилит?

На первый взгляд, проверка температуры через CMD кажется архаичным методом. Однако у этого подхода есть весомые преимущества:

  • 🔹 Нет зависимости от стороннего ПО: не нужно устанавливать GPU-Z или AIDA64, что актуально для корпоративных ПК с жёсткими политиками безопасности.
  • 🔹 Работа на удалённых серверах: если у вас headless-система (без монитора), консольные команды — единственный способ диагностики.
  • 🔹 Автоматизация мониторинга: данные можно выгружать в лог-файлы или интегрировать в скрипты оповещений.
  • 🔹 Минимальная нагрузка на систему: графические утилиты потребляют до 50 МБ ОЗУ, тогда как консольные команды — менее 1 МБ.

Конечно, у метода есть и ограничения. Например, не все видеокарты поддерживают считывание температуры через стандартные интерфейсы Windows. AMD и NVIDIA предоставляют драйверы с расширенными возможностями, а вот для Intel Arc может потребоваться обходной путь. Также стоит помнить, что консольные утилиты обычно показывают текущую температуру, а не историю изменений — для логов придётся писать скрипт.

📊 Какой бренд вашей видеокарты?
NVIDIA
AMD
Intel
Другой
Не знаю

Метод 1: Использование WMI (Windows Management Instrumentation)

WMI — это встроенный в Windows инструмент для управления системой, который позволяет получать данные о железе, включая температуру GPU. Этот метод работает на большинстве современных видеокарт, но требует прав администратора.

Откройте командную строку от имени администратора (нажмите Win + XТерминал (Администратор)) и выполните команду:

wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature

Результат будет в кельвинах × 10. Чтобы перевести значение в градусы Цельсия, разделите его на 10 и вычтите 273.15. Например, если команда вернула 3331, то:

(3331 / 10) - 273.15 = 60 °C
⚠️ Внимание: WMI может возвращать температуру не только GPU, но и других компонентов (CPU, чипсета). Чтобы точно идентифицировать видеокарту, используйте расширенный запрос:
wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature WHERE "InstanceName LIKE '%GPU%'" get CurrentTemperature
Видеокарта Поддержка WMI Примечания
NVIDIA GeForce (серии 10/20/30/40) Да Требуются драйверы версии 450+
AMD Radeon (серии RX 400+) Да Может не работать на старых драйверах Crimson
Intel Arc (серии A300/A500/A700) Частично Только на драйверах 31.0.101.4255 и новее

Запустить CMD от имени администратора|

Обновить драйверы видеокарты|

Проверить версию Windows (должна быть 10/11)|

Убедиться, что WMI-служба запущена (services.msc)-->

Метод 2: Команды PowerShell для мониторинга GPU

PowerShell — более мощная альтернатива классической CMD, и она умеет работать с объектами WMI напрямую. Следующий скрипт выводит температуру всех обнаруженных видеокарт:

Get-WmiObject -Namespace root\wmi -Class MSAcpi_ThermalZoneTemperature |

Where-Object { $_.InstanceName -match "GPU" } |

ForEach-Object {

$tempKelvin = $_.CurrentTemperature / 10

$tempCelsius = $tempKelvin - 273.15

Write-Host "Температура GPU: $tempCelsius °C"

}

Если скрипт не возвращает данных, попробуйте альтернативный вариант с использованием Get-CimInstance (работает в Windows 10/11):

Get-CimInstance -Namespace root\wmi -ClassName MSAcpi_ThermalZoneTemperature |

Select-Object InstanceName, @{Name="TempC"; Expression={($_.CurrentTemperature/10)-273.15}}

Для NVIDIA есть специализированный модуль NvAPI, который можно подключить в PowerShell. Скачайте последнюю версию драйверов и используйте команду:

[Reflection.Assembly]::LoadWithPartialName("NvAPIWrapper") | Out-Null

$gpuTemp = [NvAPIWrapper.NVAPI]::GetThermalSettings(0).Sensor[0].CurrentTemp

Write-Host "Температура NVIDIA GPU: $gpuTemp °C"

⚠️ Внимание: Модуль NvAPIWrapper требует установки через Install-Module -Name NvAPIWrapper -Force. На корпоративных ПК это может быть заблокировано политиками безопасности.

Метод 3: Чтение данных через Open Hardware Monitor (консольный режим)

Open Hardware Monitor — популярная утилита для мониторинга железа, но мало кто знает, что у неё есть консольная версия. Скачайте архив с официального сайта и распакуйте его в папку C:\OHM\. Затем выполните:

cd C:\OHM\

OpenHardwareMonitor.exe /Report

Команда сгенерирует файл Report.txt с подробными данными о всех датчиках, включая температуру GPU. Чтобы вывести данные прямо в консоль, используйте:

OpenHardwareMonitor.exe /Report | findstr "GPU"

Для автоматического мониторинга с записью в лог каждые 5 секунд подходит команда:

:loop

OpenHardwareMonitor.exe /Report >> temp_log.txt

timeout /t 5

goto loop

Остановить запись можно комбинацией Ctrl + C. Лог будет сохранён в файле temp_log.txt в текущей директории.

Как настроить автозапуск мониторинга при старте Windows?

1. Создайте файл gpu_monitor.bat с командой из примера выше.

2. Поместите его в папку C:\Users\ВашеИмя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\.

3. Для скрытого запуска добавьте в начало файла строку @echo off.

Метод 4: Прямой опрос драйверов NVIDIA и AMD

Производители видеокарт предоставляют собственные интерфейсы для доступа к телеметрии. Для их использования понадобятся специальные утилиты.

Для видеокарт NVIDIA

Утилита nvidia-smi (входит в состав драйверов) умеет показывать температуру. Запустите:

nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader

Для вывода расширенной информации (включая частоты и загрузку):

nvidia-smi -q -d TEMPERATURE

Для видеокарт AMD

AMD не предоставляет встроенной консольной утилиты, но можно использовать Radeon Software CLI (неофициальный инструмент). Скачайте его с GitHub и выполните:

RadeonSoftwareCLI.exe --get-temp

Для Intel Arc пока нет стабильных консольных инструментов, но в будущих драйверах ожидается поддержка intel-gpu-tools (аналог nvidia-smi).

Производитель Команда Требуемые драйверы
NVIDIA nvidia-smi --query-gpu=temperature.gpu 450+
AMD RadeonSoftwareCLI.exe --get-temp Adrenalin 22.5.1+
Intel Нет стабильной команды

Метод 5: Альтернативные инструменты (GPU-Z CLI, HWiNFO)

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

GPU-Z CLI

Скачайте GPU-Z с официального сайта и распакуйте архив. Для вывода температуры в консоль используйте:

gpu-z.exe --cli --temp

HWiNFO (консольный режим)

HWiNFO поддерживает экспорт данных в CSV или XML. Запустите:

hwinfo64.exe --csv --gpu

Чтобы фильтровать только температуру, добавьте обработку через findstr:

hwinfo64.exe --csv --gpu | findstr "GPU Temperature"
⚠️ Внимание: Некоторые антивирусы (например, Avast) могут блокировать HWiNFO из-за подозрительного поведения при сканировании оборудования. Добавьте папку с утилитой в исключения.

Частые ошибки и их решения

При работе с консольными командами пользователи сталкиваются с типичными проблемами. Вот как их решить:

  • 🔸 "WMI не возвращает данные": Убедитесь, что служба Winmgmt запущена (services.msc). Если проблема сохраняется, выполните winmgmt /resetrepository.
  • 🔸 "nvidia-smi не найден": Добавьте путь к драйверам NVIDIA в переменную PATH или используйте полный путь, например: C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe.
  • 🔸 "Доступ запрещён": Запускайте командную строку от имени администратора. Для PowerShell используйте Start-Process powershell -Verb RunAs.
  • 🔸 "Показания завышены/занижены": Сверьте данные с BIOS видеокарты (если есть такая возможность) или используйте thermal pads для калибровки датчиков.

Если ни один из методов не сработал, причиной может быть:

  • 🔹 Отсутствие драйверов (проверьте в Диспетчере устройств).
  • 🔹 Аппаратная неисправность датчика температуры.
  • 🔹 Блокировка со стороны антивируса или корпоративных политик.

Критическая информация: На видеокартах с кастомным BIOS (например, после прошивки для майнинга) встроенные датчики температуры могут показывать некорректные значения. В этом случае используйте внешние термометры или специализированные программы вроде FurMark для стресс-теста.

FAQ: Ответы на популярные вопросы

Можно ли проверить температуру GPU на ноутбуке через CMD?

Да, все описанные методы работают и на ноутбуках. Однако учтите, что в некоторых моделях (например, Dell XPS или HP Omen) производители блокируют доступ к датчикам через WMI. В этом случае используйте nvidia-smi (для NVIDIA) или Radeon Software CLI (для AMD).

Почему температура в CMD и в MSI Afterburner отличается?

Разница в 3–7 °C — нормальное явление. Причины:

  • 🔹 Afterburner считывает данные с датчика на самом чипе, а WMI может брать показания с контроллера питания.
  • 🔹 Задержка обновления данных (в консоли значения обновляются реже).
  • 🔹 Округление значений (некоторые утилиты показывают температуру с точностью до 0.1 °C).

Для точности используйте nvidia-smi — он работает напрямую с драйвером.

Как записать температуру GPU в файл каждые 10 секунд?

Создайте batch-скрипт:

:loop

for /f "tokens=2 delims=:" %%A in ('nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader') do (

echo %date% %time% - %%A °C >> gpu_temp.log

)

timeout /t 10

goto loop

Скрипт будет записывать данные в gpu_temp.log до тех пор, пока вы не остановите его (Ctrl + C).

Работают ли эти методы на Linux?

Нет, описанные команды предназначены только для Windows. Для Linux используйте:

  • 🔹 nvidia-smi (для NVIDIA).
  • 🔹 radeontop (для AMD).
  • 🔹 sensors (утилита из пакета lm-sensors).
Можно ли удалённо проверить температуру GPU на другом ПК?

Да, с помощью PowerShell Remoting. На целевом ПК выполните:

Enable-PSRemoting -Force

Затем с вашего компьютера подключитесь и запустите команду:

Invoke-Command -ComputerName ИМЯ_ПК -ScriptBlock {

Get-WmiObject -Namespace root\wmi -Class MSAcpi_ThermalZoneTemperature |

Where-Object { $_.InstanceName -match "GPU" } |

ForEach-Object { ($_.CurrentTemperature/10)-273.15 }

}

Для этого оба ПК должны быть в одной сети, а на целевом должна быть включена служба WinRM.