2011-10-05 2 views
0

J'ai cette ligne sur mon JavaScriptErreur sur ActiveXObject (« ADSystemInfo »)

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

Quand je suis connecté en tant tout administrateur fonctionne très bien, mais si je suis connecté en tant compte non-admin il commence à donner l'exception sur

var objSysInfo=new ActiveXObject("ADSystemInfo"); 

ce qui semble être le problème ici et comment vais-je le résoudre? Existe-t-il d'autres alternatives pour obtenir les informations de l'utilisateur à partir de javascript, je veux juste obtenir le nom d'affichage? (je sais que ce ne fonctionnera pas sur FF et Chrome)

BTW ceci est l'erreur I Get « serveur d'automatisation ne peut pas créer un objet x actif »

Répondre

0

L'erreur indique que la sécurité du navigateur Les paramètres de l'utilisateur actuel n'autorisent probablement pas l'instanciation de ce contrôle ActiveX particulier. À moins que vous ne puissiez modifier les paramètres de sécurité du navigateur de l'utilisateur, vous ne pouvez rien y faire par programmation (en utilisant JavaScript).

Vous n'obtenez pas la même erreur qu'un utilisateur admin, probablement en raison de paramètres de sécurité plus laxistes. Essayez de jouer avec les paramètres de sécurité ActiveX dans les Options Internet et voyez si vous pouvez le faire fonctionner avec l'utilisateur non-administrateur. Peut-être que la solution pour vos utilisateurs finaux est de fournir de la documentation sur la façon de modifier les paramètres de sécurité ActiveX.

0

Je sais que cette question a été posée il y a quelques années. Cependant, je réponds juste au cas où quelqu'un pourrait avoir besoin de ces informations:

Vous pouvez utiliser quelque chose comme ceci:

**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 

Peut-être ça va travailler pour vous ??

Questions connexes