Re: [問題] Python & Active Directory

看板Python作者 (evenrain)時間12年前 (2013/05/08 18:18), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
※ 引述《eaden (evenrain)》之銘言: : 我知道要透過 AD 認證可以用 win32security.LogonUser, : 要取得 OS 的帳號則可以用 os.environ.get("USERNAME")。 : 但是請問我該如何判定這是網域的帳號而非本機的帳號呢? : 也就是說我希望直接取得使用者登入 Windows 的網域帳號, : 而無須再透過 win32security.LogonUser 重新認證(這樣要輸入密碼) : 但是 os.environ.get("USERNAME") 取得的帳號也可能是本機帳號, : 不知道有無其他方式可以取得使用者登入 Windows 的帳號, : 且能判斷是否為網域帳號的方法? 我找到一個例子 import win32api import win32net import win32netcon def UserGetInfo(): try: dc=win32net.NetServerEnum(None,100,win32netcon.SV_TYPE_DOMAIN_CTRL) except: dc=[] user=win32api.GetUserName() if len(dc) is not 0: dcname=dc[0][0]['name'] return win32net.NetUserGetInfo("\\\\"+dcname,user,1) else: return win32net.NetUserGetInfo(None,user,1) 不過如果電腦沒有登入網域的話,要花一段時間才會得到結果 不知道有沒有甚麼改進的方法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.190.212
文章代碼(AID): #1HYYPaPy (Python)
討論串 (同標題文章)
文章代碼(AID): #1HYYPaPy (Python)