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) return result.split("\\")[1].replace("\n","")