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