query_information.py 867 B

12345678910111213141516171819202122232425
  1. from ntsecuritycon import *
  2. import win32api, win32security, winerror
  3. # This is a Python implementation of win32api.GetDomainName()
  4. def GetDomainName():
  5. try:
  6. tok = win32security.OpenThreadToken(win32api.GetCurrentThread(),
  7. TOKEN_QUERY, 1)
  8. except win32api.error, details:
  9. if details[0] != winerror.ERROR_NO_TOKEN:
  10. raise
  11. # attempt to open the process token, since no thread token
  12. # exists
  13. tok = win32security.OpenProcessToken(win32api.GetCurrentProcess(),
  14. TOKEN_QUERY)
  15. sid, attr = win32security.GetTokenInformation(tok, TokenUser)
  16. win32api.CloseHandle(tok)
  17. name, dom, typ = win32security.LookupAccountSid(None, sid)
  18. return dom
  19. if __name__=='__main__':
  20. print "Domain name is", GetDomainName()