RegSvr32PerUser |
Écrit par Gilles LAURENT | |
10-07-2008 | |
RegSvr32PerUser - Enregistrement d'un composant COM L'outil natif RegSvr32.exe disponible sur les plateformes Microsoft Windows permet d'enregistrer ou de supprimer l'enregistrement des composants COM tels que les fichiers de type .DLL et .OCX. Cet outil charge tout d'abord le composant en mémoire puis invoque les fonctions exportées DllRegisterServer pour l'enregistrement du composant et DllUnregisterServer pour la suppression de l'enregistrement. Les informations d'enregistrement du composant sont écrites dans le registre dans la ruche HKCR, alias de HKLM\SOFTWARE\Classes. Donc pour être en mesure d'enregistrer un composant, il est nécessaire de posséder le droit d'écriture dans cette ruche, ce qui est par défaut la cas des Administrateurs locaux de la machine et non des utilisateurs standards. L'outil RegSvr32PerUser.exe permet de contourner cette limitation en autorisant un utilisateur standard à enregistrer un composant COM. Ceci peut être particulièrement utile dans les environnements sécurisés dans lesquels les utilisateurs des postes de travail ne possèdent pas les droits nécessaires pour l'accès en écriture au registre HKCR. La technique utilisée consiste à rediriger la ruche HKCR vers la ruche HKCU\SOFTWARE\Classes avant l'enregistrement ou avant la suppression de l'enregistrement du composant. Historique: Plateformes supportées: Usage: Aide en ligne: Note aux utilisateurs de Windows Vista: Téléchargement: Ci-dessous un exemple VBScript d'utilisation de l'outil RegSvr32PerUser.exe pour enregistrer le composant COM DynaWrap sous l'autorité d'un utilisateur standard. Les commandes VBScript sont exécutées en ligne de commandes avec la console WSH Shell : WSH D:\Test> ' tentative d'instanciation du composant DynaWrap WSH D:\Test> Set oDyn=co("DynamicWrapper") :: An error occured (429) :: Un composant ActiveX ne peut pas créer un objet. WSH D:\Test> ' le composant n'est pas enregistré WSH D:\Test> ' tentative d'enregistrement du composant pour l'utilisateur WSH D:\Test> @RegSvr32PerUser.exe -com DynaWrap.dll -silent WSH D:\Test> ' le composant est maintenant enregistré et disponible WSH D:\Test> ' nouvelle tentative d'instanciation du composant DynaWrap WSH D:\Test> Set oDyn=co("DynamicWrapper") WSH D:\Test> WSH D:\Test> ' le composant DynaWrap est bien disponible WSH D:\Test> ' détermination des droits de l'utilisateur courant WSH D:\Test> ' utilisation de l'API IsNTAdmin disponible dans advpack.dll WSH D:\Test> oDyn.Register "advpack.dll", "IsNTAdmin", "r=b", "i=ll" WSH D:\Test> WSH D:\Test> ' l'api renvoie Vrai si l'utilisateur est administrateur WSH D:\Test> echo CStr (oDyn.IsNTAdmin (0,0)) Faux WSH D:\Test> ' l'utilisateur courant n'est pas administrateur WSH D:\Test> ' suppression de l'enregistrement du composant DynaWrap WSH D:\Test> @RegSvr32PerUser.exe -com DynaWrap.dll -unregister -silent WSH D:\Test> ' vérification de la suppression de l'enregistrement du composant WSH D:\Test> ' pour cela on tente une nouvelle instanciation WSH D:\Test> Set oDyn=co("DynamicWrapper") :: An error occured (429) :: Un composant ActiveX ne peut pas créer un objet. |
|
Dernière mise à jour : ( 12-07-2008 ) |
< Précédent | Suivant > |
---|