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
0
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?
0
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
0
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.
0

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.
0
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.
0
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
0