NOTE:
Run as Local System User.
import os
import subprocess
import ctypes
print("Checking Smart status drive....\n")
smart_status = os.popen('wmic diskdrive get model, status').read()
print(smart_status)
print('\n')
print("Checking Health Status of the Hard Disk...\n")
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
with disable_file_system_redirection():
obj = subprocess.Popen('chkdsk', shell=True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
out, err = obj.communicate()
if err:
print(err)
else:
print(out)
ps_content = r'''function Get-Temperature {
$t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"
$returntemp = @()
foreach ($temp in $t.CurrentTemperature)
{
$currentTempKelvin = $temp / 10
$currentTempCelsius = $currentTempKelvin - 273.15
$currentTempFahrenheit = (9/5) * $currentTempCelsius + 32
$returntemp += $currentTempCelsius.ToString() + " C : " + $currentTempFahrenheit.ToString() + " F : " + $currentTempKelvin + "K"
}
return $returntemp
}
Get-Temperature'''
print("Checking CPU Temperature...")
def ecmd(command):
import ctypes
from subprocess import PIPE, Popen
class disable_file_system_redirection:
_disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
_revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
def __enter__(self):
self.old_value = ctypes.c_long()
self.success = self._disable(ctypes.byref(self.old_value))
def __exit__(self, type, value, traceback):
if self.success:
self._revert(self.old_value)
with disable_file_system_redirection():
obj = subprocess.Popen(command, shell=True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
out, err = obj.communicate()
if err:
print(err)
else:
print(out)
file_name='Temperature.ps1'
file_path=os.path.join(os.environ['TEMP'], file_name)
with open(file_path, 'wb') as wr:
wr.write(ps_content)
ecmd('powershell "Set-ExecutionPolicy RemoteSigned"')
ecmd('powershell "%s"'%file_path)
def spooler(command):
obj = subprocess.Popen(command, shell=True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
out, err = obj.communicate()
if err:
print(err)
else:
print(out)
return "Success"
print("Stopping print spooler...")
stop = spooler('net stop spooler')
if stop == "Success":
print("Clearing print spooler...")
clear = spooler('del %systemroot%\System32\spool\printers* /Q')
if clear == "Success":
print("Starting print spooler...")
start = spooler('net start spooler')
else:
print("Error occurred while clearing...")
else:
print("Error occurred while stopping...")