First
This commit is contained in:
+64
@@ -0,0 +1,64 @@
|
||||
import subprocess
|
||||
import json
|
||||
import requests
|
||||
import socket
|
||||
|
||||
|
||||
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():
|
||||
r = request("/info/getdatabase",{'ip':get_local_ip()})
|
||||
return r.text.replace('"','')
|
||||
|
||||
def server_exist(hostname):
|
||||
return request("/info/getserver",{'name': hostname, 'dbase': getdabase()})
|
||||
|
||||
# PowerShell-Skript zum Abrufen von Gruppen und Mitgliedern aus Active Directory
|
||||
powershell_script = r'''
|
||||
# Gruppen abrufen, deren Name mit "G-" beginnt
|
||||
$groups = Get-ADGroup -Filter {Name -like "G-*"} | ForEach-Object {
|
||||
$group = $_
|
||||
$members = Get-ADGroupMember -Identity $group
|
||||
[PSCustomObject]@{
|
||||
GroupName = $group.Name
|
||||
Members = $members.SamAccountName
|
||||
}
|
||||
}
|
||||
|
||||
# Das Ergebnis in JSON exportieren
|
||||
$groups | ConvertTo-Json | Out-File -FilePath "group_members.json" -Encoding UTF8
|
||||
|
||||
'''
|
||||
|
||||
# PowerShell-Skript ausführen und die Ausgabe abrufen
|
||||
result = subprocess.run(["powershell", "-command", powershell_script], stdout=subprocess.PIPE, text=True)
|
||||
|
||||
# Die JSON-Ausgabe parsen
|
||||
with open('group_members.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_entry in group_data:
|
||||
group_name = group_entry['GroupName']
|
||||
members = group_entry['Members']
|
||||
#
|
||||
if isinstance(members, list):
|
||||
for member in members:
|
||||
addusertogroup = request("/report/addusertogroup", {'member': member, "groupname": group_name, 'dbname': getdabase()})
|
||||
print(addusertogroup.text)
|
||||
if addusertogroup.text == "false":
|
||||
next
|
||||
Reference in New Issue
Block a user