1
This commit is contained in:
+110
@@ -0,0 +1,110 @@
|
||||
import subprocess
|
||||
import json
|
||||
import datetime
|
||||
import socket
|
||||
import requests
|
||||
import platform
|
||||
|
||||
def get_local_ip():
|
||||
try:
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
s.connect(("8.8.8.8", 80))
|
||||
local_ip = s.getsockname()[0]
|
||||
s.close()
|
||||
return local_ip
|
||||
except Exception as e:
|
||||
print(f"Fehler beim Abrufen der lokalen IP-Adresse: {e}")
|
||||
return None
|
||||
|
||||
def request(function,variable):
|
||||
url = (f"http://api.stines.de:8001/{function}")
|
||||
response = requests.post(url,json = variable,headers={'access_token':'^YWUbG7yX*V!tV^KBSd*2c&vdN3wV9a2i7f3hfGFMBYFxi6#mMiJGiaA5KEHE%B*miK%qb7rQ67gmcYP@gqmux8'})
|
||||
return response
|
||||
|
||||
def getdabase():
|
||||
return request("info/getdatabase",{'ip':get_local_ip()})
|
||||
|
||||
def server_exist(hostname):
|
||||
return request("info/getserver",{'name': hostname, 'dbase': getdabase()})
|
||||
|
||||
|
||||
def request(function,variable):
|
||||
url = (f"http://api.stines.de:8001/{function}")
|
||||
response = requests.post(url,json = variable,headers={'access_token':'^YWUbG7yX*V!tV^KBSd*2c&vdN3wV9a2i7f3hfGFMBYFxi6#mMiJGiaA5KEHE%B*miK%qb7rQ67gmcYP@gqmux8'})
|
||||
return response
|
||||
|
||||
|
||||
|
||||
# PowerShell-Skript für die Active Directory-Abfrage
|
||||
# powershell_script = r'''
|
||||
# # PowerShell-Skript für die Active Directory-Abfrage mit Filter
|
||||
# $ADResults = Get-ADUser -Filter { (ObjectClass -eq "user") -and (-not (UserPrincipalName -like "*Mailbox*")) -and (-not (UserPrincipalName -like "*Admin*")) -and (-not (UserPrincipalName -like "*Exchange*"))} -Properties sn,GivenName,SamAccountName,WhenCreated,WhenChanged,LastLogon,EmailAddress |
|
||||
# Select-Object sn,GivenName,SamAccountName,WhenCreated,WhenChanged,LastLogon,EmailAddress |
|
||||
# ConvertTo-Json -Depth 1 | Out-File -Encoding UTF8 output.json
|
||||
#
|
||||
# # Ausgabe der JSON-Daten
|
||||
# $ADResults
|
||||
# '''
|
||||
#
|
||||
# # PowerShell-Skript ausführen und die Ausgabe abrufen
|
||||
# result = subprocess.run(["powershell", "-command", powershell_script], stdout=subprocess.PIPE, text=True)
|
||||
#
|
||||
with open('output.json', 'r',encoding='utf-8-sig') as file:
|
||||
ad_data = json.load(file)
|
||||
|
||||
# Ergebnisse anzeigen oder weiterverarbeiten
|
||||
for entry in ad_data:
|
||||
samaccountname = entry['SamAccountName']
|
||||
user_disabled = request("checkdisabledduser", {"user": f'{samaccountname}', "dbname": 'tnp-Invest-GmbH'}).json()
|
||||
for i in user_disabled:
|
||||
if i[1] is None:
|
||||
next
|
||||
else:
|
||||
print(f"{i[1]} - {i[0]} - {samaccountname}")
|
||||
subprocess.run(["powershell", "-command", f"Remove-ADGroupMember -Identity '{i[0]}' -Members '{samaccountname}'"], stdout=subprocess.PIPE, text=True)
|
||||
|
||||
|
||||
# createdate = when_created.strftime('%Y-%m-%d %H:%M:%S')
|
||||
# changedate = WhenChanged.strftime('%Y-%m-%d %H:%M:%S')
|
||||
# print(vorname)
|
||||
# if entry['EmailAddress'] is None:
|
||||
# mail = "-"
|
||||
# else:
|
||||
# mail = entry['EmailAddress']
|
||||
#
|
||||
# if get_user_exist(samaccountname).text == "false":
|
||||
# print(request("ad/reportadduser", {
|
||||
# "query": f"INSERT INTO User (Name, Vorname, SamAccountName,CreateDate, ChangeDate,LastLogon,`E-Mail-Adresse`) VALUES ('{name}','{vorname}','{samaccountname}','{createdate}','{changedate}','{lastlogon}','{mail}')",
|
||||
# 'dbname': getdabase().text.replace('"', '')}))
|
||||
# else:
|
||||
# print(request("ad/reportadduser", {
|
||||
# "query": f"UPDATE User SET Name = '{name}', Vorname = '{vorname}', SamAccountName = '{samaccountname}',CreateDate = '{createdate}', ChangeDate = '{changedate}',LastLogon = '{lastlogon}',`E-Mail-Adresse` = '{mail}' WHERE SamAccountName = '{samaccountname}'",
|
||||
# 'dbname': getdabase().text.replace('"', '')}))
|
||||
|
||||
# with open('group_members_old.json', 'r', encoding='utf-8-sig') as file:
|
||||
# group_data = json.load(file)
|
||||
#
|
||||
# # Iterieren Sie über die Gruppen und ihre Mitglieder und zeigen Sie sie an
|
||||
# for group_name, members in group_data.items():
|
||||
# getgroup = get_group_exist(group_name).text
|
||||
#
|
||||
# if getgroup == "false":
|
||||
# request("report/addgroup", {'query': f"INSERT INTO Gruppen (Name) VALUES ('{group_name}')",'dbname': getdabase().text.replace('"', '')})
|
||||
# else:
|
||||
# print(f"{getgroup} - {group_name}")
|
||||
# if isinstance(members, list):
|
||||
# for member in members:
|
||||
# getuserID = request("report/getuserid", {'dbname': getdabase().text.replace('"', ''), "user": member['SamAccountName']})
|
||||
# addusertogroup = request("report/addusertogroup", {'userID': getuserID.text, "groupID": getgroup, 'dbname': getdabase().text.replace('"', '')})
|
||||
# if getuserID.text == "false":
|
||||
# next
|
||||
# else:
|
||||
# print(addusertogroup.text)
|
||||
# print(getuserID.text)
|
||||
# elif isinstance(members, dict):
|
||||
# getuserID = request("report/getuserid",
|
||||
# {'dbname': getdabase().text.replace('"', ''), "user": members['SamAccountName']})
|
||||
# if getuserID.text == "false":
|
||||
# next
|
||||
# else:
|
||||
# print(getuserID.text)
|
||||
Reference in New Issue
Block a user