Un composant ActiveX ne peut créer un objet GetObject

cs_stagiaire Messages postés 6 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 11 juin 2002 - 11 juin 2002 à 12:25
charlycbu Messages postés 8 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 25 février 2010 - 1 oct. 2008 à 12:14
je crée une page HTML avec du script VBS (adsi, création d'un utilisateur Active Directory via une interface Web )celle ci s'exécute sur mon serveur IIS mais coté client elle ne marche pas: j'ai le message d'erreur "un composant ActiveX ne peut créer un objet GetObject", je n'arrive pas à résoudre ce problème, j'ai changé l'extension de mon fichier en .asp, mais toujours rien...Quelqu'un a t'il déja fait face à ce problème?

7 réponses

cs_stagiaire Messages postés 6 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 11 juin 2002
11 juin 2002 à 14:34
SAUVEZ MOI SVP,c une question de vie ou de mort pour la validation de mon projet et mon avenir
cs_stagiaire Messages postés 6 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 11 juin 2002
11 juin 2002 à 14:34
-------------------------------
Réponse au message :
-------------------------------

je crée une page HTML avec du script VBS (adsi, création d'un utilisateur Active Directory via une interface Web )celle ci s'exécute sur mon serveur IIS mais coté client elle ne marche pas: j'ai le message d'erreur "un composant ActiveX ne peut créer un objet GetObject", je n'arrive pas à résoudre ce problème, j'ai changé l'extension de mon fichier en .asp, mais toujours rien...Quelqu'un a t'il déja fait face à ce problème?
cs_cyrius Messages postés 8 Date d'inscription mercredi 7 août 2002 Statut Membre Dernière intervention 10 septembre 2002
27 août 2002 à 11:55
cyrius
charlycbu Messages postés 8 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 25 février 2010
28 nov. 2006 à 10:51
J'ais eu le même problème, j'ais du me résoudre, pour l'instant, a écrire les activex en Javascript (en lançant des lignes de commandes):

function formation() {
alert("Le compte Formation va être créé!");
var form = new ActiveXObject("WScript.Shell");
form.run('cmd.exe /c "net user /add compte password /expires:never /active:yes /passwordchg:no');
var timer;
timer = SetTimout(groupe(),1000);
function groupe() {
var group = new ActiveXObject("WScript.Shell");
group.run('cmd.exe /c "net localgroup "utilisateurs avec pouvoir" compte /add"');
}
clearTimeout(timer,5000);
}

bon, je ne suis pas un pro en la matière, d'ailleur, j'ai une erreur lors du lancement du script, même s'il est fonctionnel, je pense que beaucoup d'entre vous allez vous en rendre compte en lisant cette séquence de code, et en plus, c pour la création d'un utilisateur local, et l'intégration dans un groupe local de celui-ci (postes en workgroup).

Je pense que la solution temporaire pourrait consister à copier le script Windows Script en local, sur la machine, et l'éxécuter ensuite via un activex.

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
charlycbu Messages postés 8 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 25 février 2010
8 janv. 2007 à 16:45
En fait il s'agit d'un problème de droit.

Les droits par défaut ne permettent pas d'exécuter certaines parties du Windows
Script.


L'autre solution que j'ai trouvé, un peu compliquée, sans modifier les droit d'exécution
des scripts sur l'Internet Explorer, c'est de créé un ActiveX en Jscript ou
Javascript qui va écrire un Windows Script en local sur la machine, qui va l'exécuter
et le supprimer ensuite:


<script language=jscript>

var fso, f;

fso = new ActiveXObject("Scripting.FileSystemObject");

if (fso.FolderExists("c:\\windows\\temp\")){

f = fso.CreateTextFile("c:\\windows\\temp\\formation.vbs", true);

f.WriteLine('Set objNet=CreateObject("wscript.Network")');

f.WriteLine('strComputer=objNet.ComputerName');

f.WriteLine('Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000');

f.WriteLine('Set colAccounts = GetObject("WinNT://" & strComputer
& ",computer")');

f.WriteLine('Set objUser =
colAccounts.Create("user","formation")');

f.WriteLine('objUser.SetPassword "motdepasse"');

f.WriteLine('objUser.SetInfo');

f.WriteLine('Set objUser = Nothing');

f.WriteLine('Set objUser = GetObject("WinNT://" & strComputer
& "/formation,user")');

f.WriteLine('objUserFlags = objUser.Get("UserFlags")');

f.WriteLine('objPasswordExpirationFlag = objUserFlags OR
ADS_UF_DONT_EXPIRE_PASSWD');

f.WriteLine('objUser.Put "userFlags", objPasswordExpirationFlag');

f.WriteLine('objUser.SetInfo');

f.WriteLine('Set objUser = Nothing');

f.WriteLine('Set objGroup = GetObject("WinNT://" & strComputer
& "/Utilisateurs avec pouvoir,group")');

f.WriteLine('Set objUser = GetObject("WinNT://" & strComputer
& "/formation,user")');

f.WriteLine('objGroup.Add(objUser.ADsPath)');

f.Close();

}

else {

alert("Le compte Formation n'a pas pu être créé car le répertoire
c:\\windows n'existe pas");

}

</script>


Pour l'exécution, il suffit d'utiliser:


function toto() {

var variable = new ActiveXObject("WScript.Shell");

variable.Run('cmd.exe /c "wscript
c:\\windows\\temp\\formation.vbs"');

}


et pour supprimer ensuite le fichier Windows Script :


function dugenoux() {

var variable = new ActiveXObject("Scripting.FileSystemObject");

variable.deletefile("c:\\windows\\temp\\admin.vbs",true);

}


Bon, c'est vrai que c'est un peu long, je pense que, évidemment certains
d'entre vous auront des méthodes bien plus efficaces et plus rapides pour créer
de telles fonctions.

Cordialement.
charlycbu Messages postés 8 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 25 février 2010
8 janv. 2007 à 16:47
désolé, ce n'st pas :
variable.deletefile("c:\\windows\\temp\\admin.vbs",true);

mais:

variable.deletefile("c:\\windows\\temp\\formation.vbs",true);

que je voulais écrire.
charlycbu Messages postés 8 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 25 février 2010
1 oct. 2008 à 12:14
Il s'agit d'un problème de droits au niveau d'Internet Explorer, pour solutionner le problème, il suffit d'ajouter le site sur lequel s'exécute l'ActiveX en site de confiance, et d'autoriser l'exécution des ActiveX non marqués comme sécurisés
Rejoignez-nous