Устанавливаем Core Temp в домене

  • Автор:
  • Опубликовано:
  • Изменено:
  • Просмотры: 1 162
  • Комментарии: 0
  • Рейтинг: 100,00%
  • Голосов: 2

Захотелось иметь возможность, заходя удаленно на компьютеры пользователей в домене, сразу видеть температуру процессора и его загрузку.
В итоге выглядит это так:
core temp
Выбор пал на программу Core Temp, версия 1.0 RC6 32-bit:

CoreTemp32

Но, как оказалось, для работы программы необходимы права администратора в системе (только при первом запуске, чтобы загрузить в память драйвер, позволяющий считывать температуру), что по понятным причинам не подходит. В итоге в голову пришел такой способ: запускаем Core Temp с правами администратора, убиваем процесс, запускаем еще раз, но уже под пользователем. Для этого была сделана политика на контроллере домена, в которой в секции "Конфигурация компьютера — Конфигурация Windows — Сценарии — Автозагрузка" ставим загрузку следующего vbs скрипта:

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """\\server\utility\CoreTemp32\Core Temp.exe""", 0, 0
WScript.sleep 5000
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate, " _
& "(Debug)}!\\" _
& strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process " _
& "Where Name = 'Core Temp.exe'")
For Each objProcess in colProcessList
intRetVal = objProcess.Terminate()
Next
Wscript.Quit

Т.к. он находится в разделе "Конфигурация компьютера", то данный скрипт будет выполнятся при старте системы от имени SYSTEM со всеми необходимыми правами и подгружать драйвер, который в дальнейшем и позволит нам запускать Core Temp под учетной записью, которая не будет обладать правами администратора. Через 5 секунд после запуска, процесс этим же скриптом будет убиваться. Благодаря (Debug), наш VBS скрипт может убивать процесс даже выполняющийся из под учетной записи SYSTEM.

Далее, в этой же политике, в разделе "Конфигурация пользователя — Конфигурация Windows — Сценарии — Вход в систему" ставим загрузку следующего vbs скрипта:

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """\\server\utility\CoreTemp32\Core Temp.exe""", 0, 0
Wscript.Quit

Он будет запускать Core Temp, но благодаря строчке

WshShell.Run """\\server\utility\CoreTemp32\Core Temp.exe""", 0, 0

Не будет появляться окна с ошибкой, если процессор не поддерживается программой. Т.е. пользователь просто не увидит никаких ошибок, а если программа нормально запустится, то в трее у него будет отображаться температура.

Теперь осталось поменять конфиг программы "CoreTemp.ini". У меня он имеет следующий вид:

[Core Temp settings]
AlwaysOnTop=0;
TjMaxOffset=0;
Plugins=0;
EnLog=0;
Fahr=0;
LogInt=10;
Minimized=1;
ReadInt=3000;
ShowDTJ=0;
BusClk=0;
AltFreq=0;
SingleInstance=1;
CloseToSystray=1;
StatusColor=0,FF;
TextColor=FF000000;
LabelColor=FF000000;

SPX=0;
SPY=0;
MiniMode=1;
AutoUpdateCheck=0;
HideTaskbarButton=0;
Language=English;

[System tray]
SystrayOption=0;
SystrayTransparentBack=1;
SystrayColorAllBack=0,0,0,0;
SystrayColorAllText=4080FF,4080FF,4080FF,4080FF;4080FF;4080FF;4080FF;4080FF;
SystrayColorHighCpuBack=0;
SystrayColorHighCpuText=D8FF;
SystrayColorHighBack=0;
SystrayColorHighText=D8FF;
SystrayColorClockBack=0;
SystrayColorClockText=C0C0C0;
SystrayColorLoadBack=0;
SystrayColorLoadText=FFFFFF;
SystrayColorRamBack=0;
SystrayColorRamText=C0C0C0;
SystrayDisplayFrequency=0;
SystrayDisplayLoad=1;
SystrayDisplayRam=0;
SystrayFontName=Tahoma;
SystrayFontSize=8;

[Overheat protection settings]
EnableOHP=0;
NotifyHot=0;
Balloon=1;
Flash=0;
Execute=;
EnableShutDown=0;
ProtectionType=0;
ActivateAt=0;
Seconds=30;
ExecuteOnce=1;
Degrees=90;

[G15 LCD settings]
G15BuiltInFont=1;
G15Time=0;
G1524HTime=0;
G15FontName=Tahoma;
G15FontSize=8;

[Windows 7 Taskbar button settings]
W7TBEnable=0;
W7TBOption=0;
W7TBCycleDelay=10;
W7TBFrequencyColor=2;
W7TBDisableMinimizeToTray=0;

SnmpSharedMemory=0;

Белым цветом отмечена текущая загрузка процессора, за ее цвет отвечает строчка

SystrayColorLoadText=FFFFFF;

А оранжевым температура каждого ядра процессора, за это отвечает строчка

SystrayColorAllText=4080FF,4080FF,4080FF,4080FF;4080FF;4080FF;4080FF;4080FF;

Первое значение - цвет текста температуры первого ядра, второе значение - второго и т.д.

Оценить статью

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (2 оценок, среднее: 5,00 из 5)

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

Ваш e-mail не будет опубликован.

Читайте ранее:
Windows Server: Разрешить пользователям домена менять системное время
mIRC 7: Отображение русских символов, написанных не в UTF-8
Windows 10 Technical Preview: Настройка отображения времени в 24-часовом формате
Windows 10 Technical Preview: Как добавить возможность ввода русского языка
Windows XP: Установка сетевого принтера
Закрыть