我正在创建一个应用程序,人们将使用远程桌面连接登录到我们的服务器,但我需要通过VB.net获取AD用户名并存储它。我已经尝试了很多获取用户名的方法,例如:
Protected oNet = CreateObject("WScript.NetWork")
Protected user5 = oNet.UserName
Protected userName = oNet.ExpandEnvironmentStrings("%UserName%")
Protected userName1 = Environment.UserName
Protected objSysInfo = CreateObject("ADSystemInfo")
Protected objUser = GetObject("LDAP://" & objSysInfo.UserName)
Protected userName2 As String = objUser.CN
另外还有其他一些方法,但似乎只是返回的是“Server-Name $”。我是否在IIS中遗漏了某些内容,或者我刚刚完成了错误的操作?
任何帮助将不胜感激!
答案 0 :(得分:1)
CreateObject("WScript.Network").UserName
这应该返回运行脚本/应用程序的用户的用户名。
CreateObject("WScript.Network").ExpandEnvironmentStrings("%UserName%")
这应该失败,因为WshNetwork
对象没有ExpandEnvironmentStrings
方法。您需要一个WshShell
对象:
CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%")
Environment.UserName
这可能应该返回在vb.net中运行脚本/应用程序的用户的用户名。它应该在vbscript中失败,因为您只能通过Environment
对象访问WshShell
集合:
CreateObject("WScript.Shell").Environment("PROCESS")("USERNAME")
GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName).CN
用户(帐户)名称存储在sAMAccountName
属性中,而不是cn
属性中。