作者eaden (evenrain)
看板Python
标题Re: [问题] Python & Active Directory
时间Wed May 8 18:18:08 2013
※ 引述《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