from __future__ import print_function # import statements import sys, subprocess import wmi, win32api, win32con # get the arguments and extract user's IP address argument = sys.argv[9] attr_map = argument.strip().split('=') # for item in argument.split(',')) userIP = attr_map[1] # subprocess ping = subprocess.Popen( ["ping", "-n", "1", userIP], stdout = subprocess.PIPE, stderr = subprocess.PIPE ) # can we ping the user's IP address? out, error = ping.communicate() # if we cannot ping user's IP address then print error message and exit program if out.find("Reply from") == -1: print (userIP, "is NOT pingable.") sys.exit() # try to access wmi try: c = wmi.WMI(userIP, user=r"domain\account, password=XXXX") except: print ("Cannot access WMI for", userIP) sys.exit() # perform system lookup of IP address user_list = [] for us in c.Win32_LogonSession(): try: for user in us.references("Win32_LoggedOnUser"): user_logins = user.Antecedent.Name user_list.append(user_logins) except: pass if user_list: userid = 'userid={}'.format(user_list[0]) print(userid)