ADD zls_check.py

master
Sebastian Serfling 2023-10-25 10:05:39 +02:00
parent 4a0edfa446
commit 311e60461c
2 changed files with 54 additions and 38 deletions

76
main.py
View File

@ -49,6 +49,10 @@ else:
{"hostname": hostname, "ipadresse": system_info.get_local_ip(), "ram": system_info.get_ram_info(), {"hostname": hostname, "ipadresse": system_info.get_local_ip(), "ram": system_info.get_ram_info(),
"hddused": space_used(), "hddfree": space_free(), "hddtotal": space_total(), "dbname": database}) "hddused": space_used(), "hddfree": space_free(), "hddtotal": space_total(), "dbname": database})
if system_info.get_client_info() == "Client":
user = system_info.get_smb_credential()
### Check User ### Check User
check_user_exist = request("user/get",{"user":user,"dbname":database}) check_user_exist = request("user/get",{"user":user,"dbname":database})
if check_user_exist.text == "false": if check_user_exist.text == "false":
@ -67,42 +71,42 @@ request("host/mainboard",{"mainboardmodel":system_info.get_mainboard_model(),"ma
### Check NetVolume Exist ### Check NetVolume Exist
netvolume = request("host/get/netvolume",{"user":user,"dbname":database}) netvolume = request("host/get/netvolume",{"user":user,"dbname":database})
if netvolume.text == "false": # if netvolume.text == "false":
print(net_volume.get_netvolume()) # print(net_volume.get_netvolume())
if net_volume.get_netvolume() is None: # if net_volume.get_netvolume() is None:
with open("log.txt", "a") as datei: ## Schreibt ergebnissse in Log File # with open("log.txt", "a") as datei: ## Schreibt ergebnissse in Log File
datei.writelines(f"Keine Netvolume vorhanden!" + "\n") ## WRITE TO ERRORLOG # datei.writelines(f"Keine Netvolume vorhanden!" + "\n") ## WRITE TO ERRORLOG
# pushover_send("Keine Netvolume vorhanden!", hostname) ## SEND ERROR LOG TO PUSHOVER # # pushover_send("Keine Netvolume vorhanden!", hostname) ## SEND ERROR LOG TO PUSHOVER
else: # else:
for i in netvolume.json(): ##LIST FORM netvolume # for i in netvolume.json(): ##LIST FORM netvolume
print(i[2]) # print(i[2])
if i != "-": # if i != "-":
if not os.path.isdir(f"{i[1]}"): # if not os.path.isdir(f"{i[1]}"):
try: # try:
result = subprocess.run(["net", "use", f"{i[1]}:", f"{i[0]}"], capture_output=True, check=True) ## MOUNT VOLUME # result = subprocess.run(["net", "use", f"{i[1]}:", f"{i[0]}"], capture_output=True, check=True) ## MOUNT VOLUME
script = fr'''$shell = New-Object -ComObject Shell.Application # script = fr'''$shell = New-Object -ComObject Shell.Application
$shell.NameSpace("{i[1]}:").Self.Name = "{i[2]}"''' ### Schreibt den Namen der Netzlaufwerke um # $shell.NameSpace("{i[1]}:").Self.Name = "{i[2]}"''' ### Schreibt den Namen der Netzlaufwerke um
subprocess.run(["powershell", "-Command", script], capture_output = True,text = True) # subprocess.run(["powershell", "-Command", script], capture_output = True,text = True)
print(script) # print(script)
print("net", "use", f"{i[1]}:", f"{i[0]}") # print("net", "use", f"{i[1]}:", f"{i[0]}")
except subprocess.CalledProcessError as e: # except subprocess.CalledProcessError as e:
time = datetime.datetime.now().strftime("%d.%m.%Y %H:%M") # time = datetime.datetime.now().strftime("%d.%m.%Y %H:%M")
if "85" in str(e.stderr): # if "85" in str(e.stderr):
print(f"{time} - Volume exists {i[0]} {i[1]}") # print(f"{time} - Volume exists {i[0]} {i[1]}")
elif "1223" in str(e.stderr): # elif "1223" in str(e.stderr):
errorcode = f"{time} - {user} has no access to {i[0]} {i[1]}" # errorcode = f"{time} - {user} has no access to {i[0]} {i[1]}"
elif "53" in str(e.stderr): # elif "53" in str(e.stderr):
errorcode = f"{time} - Volume was not Found {i[0]} {i[1]}" # errorcode = f"{time} - Volume was not Found {i[0]} {i[1]}"
elif "64" in str(e.stderr): # elif "64" in str(e.stderr):
errorcode = f"{time} - Volume Path not found {i[0]} {i[1]}" # errorcode = f"{time} - Volume Path not found {i[0]} {i[1]}"
elif "1219" in str(e.stderr): # elif "1219" in str(e.stderr):
errorcode = f"{time} - Multiconnection to Folder not allow {i[0]} {i[1]}" # errorcode = f"{time} - Multiconnection to Folder not allow {i[0]} {i[1]}"
else: # else:
errorcode = f"{time} - Unknow ERROR Code {str(e.stderr)}" # errorcode = f"{time} - Unknow ERROR Code {str(e.stderr)}"
#
#
with open("log.txt", "a") as datei: # with open("log.txt", "a") as datei:
datei.writelines(f"{errorcode}" + "\n") ## WRITE TO ERRORLOG # datei.writelines(f"{errorcode}" + "\n") ## WRITE TO ERRORLOG
# # pushover_send(errorcode, hostname) ## SEND ERROR LOG TO PUSHOVER # # pushover_send(errorcode, hostname) ## SEND ERROR LOG TO PUSHOVER
# #
# while True: # while True:

View File

@ -80,7 +80,7 @@ def get_winver():
def get_local_ip(): def get_local_ip():
powershell_script = ''' powershell_script = '''
(Get-NetIPAddress | Where-Object { $_.PrefixOrigin -eq "Dhcp" }).IPAddress 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)# result = subprocess.check_output(["powershell.exe", "-command", powershell_script], universal_newlines=True)#
ip = result.rsplit('.',1) ip = result.rsplit('.',1)
@ -97,4 +97,16 @@ def get_lastlogon(user):
result = subprocess.check_output(["powershell.exe", "-command", powershell_script], universal_newlines=True) result = subprocess.check_output(["powershell.exe", "-command", powershell_script], universal_newlines=True)
return result return result
print(get_cpu_brand()) 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]