RegSvr32PerUser

Transcription

RegSvr32PerUser
glsft.free.fr
RegSvr32PerUser
Soumis 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:
Version 1.0.0.1 - 20080710 - Première Release Publique
Plateformes supportées:
Windows 2000/XP/2003/2008/Vista SP1
Usage:
RegSvr32PerUser -com [path\]dllname [-unregister] [-silent]
Aide en ligne:
RegSvr32PerUser v1.0.0.1 (c) 2008 Gilles LAURENT
[Un]registers per user COM server files that are self-registerable
Usage : RegSvr32PerUser -com [path\]dllname [-unregister] [-silent]
Commands :
-com
Name of COM server
-unregister
Unregister COM server, default to register
-silent
Display no message boxes
Note aux utilisateurs de Windows Vista:
Un problème dans Windows Vista concernant l'enregistrement des librairies de types peut provoquer le message d'erreur
"Accès refusé". Une fiche technique sur l'explication du problème et son correctif est maintenant disponible ici. Ce
problème est corrigé depuis Windows Vista Service Pack 1. La définition de la variable d'environnement
OAPERUSERTLIBREG n'est pas nécessaire car l'outil RegSvr32PerUser.exe essayera tout d'abord d'appeler la
fonction exportée OaEnablePerUserTLibRegistration si celle-ci est disponible dans la librairie Oleaut32.dll.
Téléchargement:
Guide PDF: Archive: RegSvr32PerUser.zip
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
http://glsft.free.fr
Propulsé par Joomla!
Généré: 1 October, 2016, 04:21
glsft.free.fr
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.
http://glsft.free.fr
Propulsé par Joomla!
Généré: 1 October, 2016, 04:21

Documents pareils

WSH Shell : Assistance WMI

WSH Shell : Assistance WMI VMware Workstation WebFldrs XP Windows Genuine Advantage v1.3.0254.0 Windows Resource Kit Tools Winzip 8.1 SR1 EN WSH D:\Test> ' affichage également de la version des produits WSH D:\Test> ' il est...

Plus en détail