2011-10-05 76 views
0

我有我的JavaScript错误上的ActiveXObject(“ADSystemInfo”)

var objSysInfo=new ActiveXObject("ADSystemInfo"); 
var objUser=GetObject("LDAP://" + objSysInfo.UserName); 
alert(objUser.displayName); 

当我登录的管理员一切正常这条线,但如果我登录的非管理员帐户,它开始给予例外

var objSysInfo=new ActiveXObject("ADSystemInfo"); 

这里似乎是什么问题,我将如何解决它? 有没有其他的选择从JavaScript获取用户信息,我只想获取显示名称? (我知道FF和Chrome这不会工作)

顺便说一句,这是错误我得到“自动化服务器不能创建对象的Active X”

回答

0

的错误指示浏览器安全当前用户的设置可能不允许实例化该特定的ActiveX控件。除非您可以更改用户的浏览器安全设置,否则您无法通过编程(使用JavaScript)来做任何事情。

由于安全设置更为宽松,您不会得到与管理员用户相同的错误。

尝试使用Internet选项中的ActiveX安全设置,并查看是否可以使其与非管理员用户一起使用。也许最终用户的解决方案是提供有关如何更改ActiveX安全设置的文档。

0

我知道这个问题是几年前问过的。不过,我回答,以防万一有人可能会需要这样的信息:

您可能需要使用更多的东西是这样的:

**JavaScript** 
    var wshshell = new ActiveXObject("wscript.shell"); 
    var userName = wshshell.ExpandEnvironmentStrings("%username%"); 
    alert(userName); 

**VBScript** 
    Set ObjSysInfo = CreateObject("ADSystemInfo") 
    strUser = objSysInfo.UserName 

    Set objUser = GetObject("LDAP://" & strUser) 
    Dim userName = objUser.SAMAccountName 
'In this case, username will be populated with whatever the AD requires for 
'authentication when logging in 

也许这会为你工作?