VOLUME_MOUNT/system_info.py

112 lines
3.7 KiB
Python

import os
from multiprocessing import freeze_support
import cpuinfo
import psutil
import math
import platform
import datetime
import socket
import subprocess
import re
import wmi
def get_cpu_brand():
freeze_support()
return cpuinfo.get_cpu_info()['brand_raw']
def get_cpu_core():
freeze_support()
return os.cpu_count()
def get_cpu_ghz():
freeze_support()
ghz = str(cpuinfo.get_cpu_info()['hz_actual_friendly'])
return ghz.replace(" GHz","")[:-2]
def get_cpu_typ():
battery_check = psutil.sensors_battery()
if battery_check is None:
return "static"
else:
return "mobile"
def get_mainboard_model():
return f"'{wmi.WMI().Win32_ComputerSystem()[0].Model}'"
def get_mainboard_vendor():
return f"'{wmi.WMI().Win32_ComputerSystem()[0].Manufacturer}'"
def get_ram_info():
freeze_support()
ram_info = psutil.virtual_memory()
total_ram = ram_info.total / (1024 ** 3) # In Gigabytes
return math.ceil(total_ram)
def get_total_hdd(function):
freeze_support()
space = 0
disk_partitions = psutil.disk_partitions()
for partition in disk_partitions:
partition_info = psutil.disk_usage(partition.mountpoint)
if function == "free":
space += round(partition_info.free / (1024 ** 3), 2)
elif function == "used":
space += round(partition_info.used / (1024 ** 3), 2)
elif function == "total":
space += round(partition_info.total / (1024 ** 3), 2)
return math.ceil(space)
def get_single_hdd(function):
freeze_support()
used_disk_size = 0
disk_partitions = psutil.disk_partitions()
partition_return = []
for partition in disk_partitions:
partition_info = psutil.disk_usage(partition.mountpoint)
if function == "free":
space = round(partition_info.free / (1024 ** 3), 2)
elif function == "used":
space = round(partition_info.used / (1024 ** 3), 2)
elif function == "total":
space = round(partition_info.total / (1024 ** 3), 2)
partition_name = partition.mountpoint.replace(':\\',"")
partition_return.append(f"{partition_name}: {space}GB")
return partition_return
def get_winver():
freeze_support()
return platform.platform()
def get_local_ip():
powershell_script = '''
Get-NetIPAddress | Where-Object { $_.PrefixOrigin -eq "Dhcp" -and $_.InterfaceAlias -like "*Ethernet*" } | Select-Object -ExpandProperty IPAddress
'''
result = subprocess.check_output(["powershell.exe", "-command", powershell_script], universal_newlines=True)#
ip = result.rsplit('.',1)
ip = ip[0] + '.' + "0"
return ip
def get_lastlogon(user):
# PowerShell-Befehl als Zeichenfolge erstellen
powershell_script = f'''
$username = "{user}"
$lastlogon = Get-LocalUser -Name "{user}" | Select-Object -ExpandProperty LastLogon
$lastlogon.ToString("yyyy-MM-dd HH:mm:ss")
'''
result = subprocess.check_output(["powershell.exe", "-command", powershell_script], universal_newlines=True)
return result
def get_client_info():
powershell_script = f'''Get-WmiObject -Class Win32_OperatingSystem | Select-Object -ExpandProperty ProductType'''
result = subprocess.check_output(["powershell.exe", "-command", powershell_script], universal_newlines=True)
if result[0] == "1":
return "Client"
else:
return "Server"
def get_smb_credential():
powershell_script = f'''Get-SmbConnection | Select-Object -ExpandProperty Credential'''
result = subprocess.check_output(["powershell.exe", "-command", powershell_script], universal_newlines=True)
result.split("\\")
return result[1]