1

我正在创建一个应用程序,人们将使用远程桌面连接登录到我们的服务器,但我需要通过 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 中遗漏了什么,还是我完全搞错了?

任何帮助将非常感激!

4

1 回答 1

1
  • CreateObject("WScript.Network").UserName

    这应该返回您的脚本/应用程序正在其上下文中运行的用户的用户名。

  • CreateObject("WScript.Network").ExpandEnvironmentStrings("%UserName%")

    这应该会失败,因为该WshNetwork对象没有ExpandEnvironmentStrings方法。你需要一个WshShell对象:

    CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERNAME%")
    
  • Environment.UserName

    这可能应该返回您的脚本/应用程序在中运行的用户的用户名。中失败,因为您只能通过对象访问Environment集合:WshShell

    CreateObject("WScript.Shell").Environment("PROCESS")("USERNAME")
    
  • GetObject("LDAP://" & CreateObject("ADSystemInfo").UserName).CN

    用户(帐户)名称存储在sAMAccountName属性中,而不是cn属性中。

于 2013-07-29T11:14:42.443 回答