2010-10-21 14 views
10

Mi compañero de trabajo está tratando de registrar algunos componentes COM (que escribí) a través de RegAsm.exe y dice que necesita privilegios de administrador. Su cuenta tiene privilegios de administrador pero no ha iniciado sesión como administrador. ¿Hay alguna forma de usar su cuenta de usuario habitual y tener éxito en esta tarea?¿Puedo ejecutar RegAsm sin ser administrador?

Respuesta

4

Se requieren privilegios de administrador para permitir que Regasm.exe actualice el registro. Si se trata de una restricción de UAC, cree un acceso directo en el escritorio para cmd.exe y marque la casilla "Ejecutar este programa como administrador". O cambie esta configuración en el acceso directo del símbolo del sistema de Visual Studio, eso es más fácil.

3

Creo que esta pregunta pertenece a otra parte, pero Windows usa menos privilegios, por lo que si es un usuario que es a la vez un usuario normal y un Administrador, obtiene privilegios de usuario normales. Utilice runas para hacer esto o haga clic con el botón secundario en el elemento y "ejecutar como administrador"

3

¿Por qué no usa registration free com? Solo se admite desde 2003 y elimina la necesidad de acceso administrativo/de UAC para instalar componentes COM.

Con RegFree COM puede agrupar los DLL de COM con la aplicación que los usa como un ensamblado privado, pero eso no significa que no se puedan instalar correctamente, ya sea en el registro o en WinSxS en la implementación final install.exe/msi


wRT Subtexto la consulta real: no - registro COM está en la clave HKEY_LOCAL_MACHINE que siempre requiere acceso administrativo.


He mentido: en realidad se puede. Si crea una aplicación sin ningún manifiesto, Windows deduce que es una aplicación de la era XP que espera que se ejecute el acceso administrativo y activará un modo de compatibilidad que, entre otras funciones, redirecciona el acceso de escritura a HKLM a una ubicación de escritura bajo HKCU. Entonces, el registro del componente COM "tiene éxito", pero está registrado solo para el usuario actual.

No estoy seguro de por qué la capacidad de registrarse solo para la cuenta actual no se admite generalmente fuera del marco de compatibilidad.

9

Trabajo en un entorno/jurisdicción donde el acceso de administrador local a todos los usuarios simplemente no es posible (legal/cumplimiento/las regulaciones no lo permiten).

Parece que no hay equivalente de esta función en el mundo .NET: AtlSetPerUserRegistration

Prueba esto: Usando regasm, generar las entradas del registro con el argumento/regfile. De forma predeterminada, las entradas de registro deben usar HKEY_CLASSES_ROOT (HKCR) como raíz. Modifique las entradas (manualmente o por script) para usar HKEY_CURRENT_USER (HKCU).

Finalmente, distribuya su DLL .NET con el script de registro. Todavía puede ejecutar regedit sin derechos de administrador para registrar su DLL .NET. Manualmente desde la línea de comando, usando un archivo por lotes, o un programa de instalación separado (pequeño) puede manejar el registro.

2

He iniciado sesión en una cuenta que tiene privilegios de administrador. Pero RegAsm.exe todavía dice que necesita privilegios de administrador.

[De algunas notas que tengo paraWindows 2008 R2. Confirmar en otros sistemas operativos Windows compatibles con UAC. Lo siguiente asume que puede realizar cambios en laPolítica de seguridad local.]

En su configuración por defecto, la configuración de Control de cuentas de usuario (UAC) dan al administrador privilegios locales, sino que se limitan los privilegios de los otros miembros del grupo de administradores. Para levantar las restricciones de UAC en otros miembros del grupo Administradores, haga lo siguiente:

  1. Seleccionar inicio -> Todos los programas -> Herramientas administrativas -> Directiva de seguridad local .
  2. Seleccione Políticas locales ->Opciones de seguridad.
  3. En el panel derecho, haga doble clic en la tercera entrada de la parte inferior que dice Control de cuentas de usuario: ejecutar todos los administradores en Modo de aprobación de administrador.
  4. Haga clic en Desactivado.
  5. Haga clic en OK para cerrar el diálogo y cierre la herramienta de configuración de Directiva de seguridad local.
  6. Reinicie la computadora para completar este cambio en la configuración de UAC.
Cuestiones relacionadas