Re: [問題] Python & Active Directory
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章