2008-11-05 12 views
6

Actualización: Como la máquina de desarrollo se ha movido a Vista, ahora pruebo automáticamente como un usuario estándar. Y con la eliminación gradual de XP, esta pregunta ya no es tan interesante.¿Es compatible con usuarios estándar en Windows XP?


Desde los requisitos del logotipo de Windows 2000, Microsoft ha requerido que las aplicaciones se ejecuten como usuario estándar. Como todos los demás, siempre ejecuté mi escritorio como usuario administrativo. Y como todos los desarrolladores: me conecto, desarrollo, ejecuto y pruebo como usuario administrativo.

Ahora con un nuevo impulso para apoyar finalmente los usuarios estándar, he estado probando mis aplicaciones ejecutando como un usuario normal - ya sea a través EjecutarComo, o tener mi solicitud relanzar sí con derechos normales usando [SaferCreateLevel][1]/[SaferComputeTokenFromLevel][2] si detecta se está ejecutando como un administrador. veo rápidamente cómo algunas de mis aplicaciones fallan en Windows XP como usuario estándar (debido a mi propia estupidez). También veo cómo las mismas aplicaciones funcionan bien bajo Vista (gracias a sus numerosas cuñas para arreglar mis errores).

Aparte: Es irónico que las aplicaciones tengan más probabilidades de ejecutarse en Vista como un usuario estándar que en XP.

La pregunta es ¿usted prueba sus aplicaciones para la compatibilidad del usuario estándar? ¿Se desarrolla como usuario estándar en XP? ¿Ignoras el acceso estándar de los usuarios y esperas lo mejor?


intenté, como beneficio adicional, que mi aplicación se relanza como usuario limitado (en lugar de usuario normal). Ni siquiera aparece: Windows dice que no se pudo inicializar. Entonces hay un área de investigación futura de mi parte: hacer que la aplicación sea compatible con usuarios limitados.


me he referido específicamente a los usuarios estándar en Windows XP en lugar de Vista para hacer cumplir la verdad que Vista no es diferente de XP en lo que se refiere a la compatibilidad. Y cualquiera que diga que su aplicación falla en Vista debe darse cuenta de que también falla en XP.

+0

Soy desarrollador y no "como todos los demás", no corro con privilegios de administrador a menos que los necesite (generalmente para instalar algo, pero rara vez) . – kenny

+0

"Como todos los demás, siempre ejecuté mi escritorio como usuario administrativo". Ese es precisamente el tipo de suposición que fallará espectacularmente cuando menos lo espere. – Piskvor

Respuesta

5

Funciono en XP como usuario limitado casi todo el tiempo y de manera predeterminada. (En Vista, utilizo una cuenta administrativa y confío en UAC.)

Desarrollo como usuario limitado. Hay muy poco en el desarrollo de Java y Visual Studio que requiera más privilegios que eso.

Si necesito ejecutar algo en la cuenta limitada pero con privilegios administrativos, utilizo un script MakeMeAdmin (renombrado y ajustado como ConsoleMeAdmin) .bat que crea una sesión de consola administrativa.

Si realmente necesito ser un administrador para hacer las instalaciones y hacer las primeras ejecuciones para que mi software de seguridad pueda condicionarse a sí mismo para permitir el acceso a la red al nuevo código (o no), etc., lo elevaré mi cuenta de usuario limitada al administrador el tiempo suficiente para hacer todo eso, luego reinicie la cuenta nuevamente como usuario limitado. Aparte de las actualizaciones de Windows, realizo todas mis descargas como usuario limitado y luego lo instalo fuera de línea luego de la elevación a Administrador.

Como solo tengo una pequeña LAN de grupo de trabajo sin Active Directory, los únicos tipos de cuentas útiles son Administrador y Usuario limitado en XP. (Intenté con el usuario avanzado cuando comencé a usar XP pero encontré que podía prescindir de él y prefiero lo que me enseña sobre no depender de privilegios especiales en el código que construyo).

[PD: También tengo la ejecución de datos Protección (compatible con hardware) activada de forma predeterminada en mi sistema XP, y se sorprendería de lo que aparece.]

+0

Son todas buenas respuestas, pero me gusta esta la mejor. –

2

Sí, lo probamos.

Probablemente la regla más simple, pero más abusada, es que no debe hacer nada que requiera acceso de escritura a la carpeta de instalación de su programa. En su lugar, hay una carpeta especial llamada Application Data para ese tipo de cosas.

5

En el entorno empresarial, la mayoría de los usuarios son usuarios estándar de dominio de Windows. Ignorar las pruebas de cumplimiento del usuario estándar es un movimiento realmente malo. Y obtendrá a cada administrador de dominio que tiene que instalar su aplicación muy enojado y ellos irán a su competencia.

1

Sí, y tomé el consejo general de que es mucho más fácil hacer que su aplicación se ejecute en Vista si funciona bien en XP como usuario limitado. Para lograr eso, y saber si había algún problema al ejecutar como usuario limitado, utilicé LUABuglight.

Por lo general, no me desarrollo como usuario limitado sino que solo inicie sesión como usuario limitado para realizar pruebas.

La cantidad de programas que requieren derechos de administrador y escriben en su propia carpeta Archivos de programa es increíble. Para ser sincero, he encontrado muy pocos programas que se ejecuten correctamente como usuarios limitados, de cualquier compañía de software, grande o pequeña.

+0

Demasiado cierto. El software que mis hijos quieren instalar casi siempre requiere que me instale como administrador e intento establecer protecciones para que puedan ejecutarlo sin ser un administrador. ¡QUE DOLOR! –

11

Si desea vender su aplicación a las empresas, entonces sí, usted debe probar su aplicación ejecutándose como un usuario estándar. Si su aplicación no se puede ejecutar sin privilegios administrativos, eso arruinará cualquier venta en un negocio.

Incluso en el mercado interno, mucha gente puede y usa usuarios limitados para realizar sus actividades diarias; Sé lo que hago.

Incluso las aplicaciones administrativas que necesitan legítimamente privilegios administrativos deben comportarse de manera sensata cuando se ejecutan como usuarios limitados. Deben aparecer un cuadro de diálogo informando al usuario que los derechos administrativos son necesarios para completar cualquier tarea que estaban intentando.

La mejor manera de crear un software que respete estas limitaciones es desarrollar su software bajo un usuario que tenga privilegios limitados. De esta forma, cada vez que desarrolle una función, prueba implícitamente si funcionará en un entorno limitado.

Nada de esto es difícil, solo requiere un cierto grado de disciplina, como lo hacen todos los procedimientos de garantía de calidad. Las personas se han estado desarrollando como usuarios no root en * nix durante décadas. El desarrollo de Windows está detrás de la curva en este aspecto.

7

Crispin, en his PDC talk, hizo un muy buen punto, uno que nunca había considerado antes.

Google Chrome se instala como un usuario estándar: se instala en la carpeta de cada usuario, sin necesidad de un mensaje de UAC o OTS, y todo lo que es fácil de usar debido a que la instalación es tan fácil. Desgraciadamente, está instalado en una carpeta por usuario, donde el usuario puede modificarlo.

Poniéndolo de otra manera: malware puede modificar el exe de Chrome.

Chrome ahora se convertiría en el mayor objetivo para cualquier malware. Y si algún malware lo modifica, Chrome ahora está enviando sus nombres de usuario, contraseñas e información de la tarjeta de crédito a la base, porque eso es lo que hace el nuevo Chrome exe.

Es por eso que a veces quiere aplicaciones instaladas en ubicaciones protegidas.


Editar: Todo el Microsoft "haga clic una vez" inititave despliegue sufre el peligro.

+1

Whooooof. Bueno saber. –

+0

He pensado lo mismo sobre el sistema instalador OSX que permite que la mayoría de las aplicaciones se instalen en la cuenta del usuario. En un entorno de empresa, esto es ** siempre ** malo porque no se puede rastrear correctamente qué está instalado (¡y qué está desactualizado!). – davil

+0

Estoy usando el modelo "instalar como administrador, ejecutar como usuario". – Piskvor

0

¿Alguien más encuentra divertido que los desarrolladores de Windows piensen que es normal que se ejecute como administrador (aparentemente), pero los desarrolladores de Linux casi nunca se ejecutan como root?

+0

La mayoría de las personas que conozco ejecutan una cuenta con privilegios de administrador, no como administrador/raíz. Lamentablemente, esto se ha convertido en la práctica después de años de necesitar un acceso más alto que el que se le otorgó a un usuario predeterminado, y ahora es solo un hábito. Espero que esto no se degrade a una guerra religiosa de SO. – Tim

+0

estoy en desacuerdo también. Después de tener que ejecutar sudo una y otra vez, la gente simplemente se rinde. Sería bueno si me dejara funcionar como una cuenta limitada, pero aparece algo automáticamente cada vez que (brevemente) necesita acceso de root. –

3

En mi humilde opinión el desarrollo de una cuenta de administrador no solo es innecesario, ¡sino también altamente peligroso! Supongamos que revisa algo en Internet mientras desarrolla (le viene a la mente Stackoverflow) y detecta algún malware: el historial muestra que esto es mucho más fácil de lo que podría haber pensado, p. a través de pancartas Como administrador, este malware infectará tu computadora y es posible que nunca te deshagas de él. Incluso puede ser un peligro para todo su trabajo de desarrollo (¡piense en el espionaje industrial)!

Si tiene que ejecutar/nada prueba como un administrador, utilice uno runas o incluso mejores máquinas virtuales - de esa manera se puede utilizar sistemas separados con comportamiento definido (un montón de problemas con el software de Windows provienen de bibliotecas que son por supuesto disponible en la PC del desarrollador, ¡pero casi en ningún otro lado!). En tiempos de Microsoft Virtual PC y VMWare Server (ambos gratuitos) ni siquiera hay una excusa debido a los altos precios del software de virtualización.

He desarrollado algunas aplicaciones de Windows hace algunos años y además de sus instaladores NADA alguna vez se requieren derechos administrativos. La configuración de tiempo de ejecución siempre pertenece al usuario, no a la máquina.

Y sí, también ejecuto Windows XP como usuario normal en casa, al igual que los miembros de mi familia (padres, etc.). A veces, un software desagradable necesita acceso de escritura a su carpeta de instalación, pero el 95% de todas las aplicaciones instaladas funcionan bien desde el primer momento.

+0

No todas las herramientas de desarrollador siempre han funcionado sin privilegios de administrador. –

0

Como antiguo BOFH voy a llover fuego y palabras desagradables sobre cualquiera que pida derechos elevados para que sus aplicaciones del lado del cliente se ejecuten correctamente. Está fuera de cuestión, siempre lo fue desde 2001-2002 cuando cambiamos de Win9x a XP (sic).

Como desarrollador recién nacido en un lugar donde todo el mundo en XP es un administrador local mediante una directiva de grupo forzada y el cambio parece tomar tiempo y nadie es especialmente proclives a comenzar bien - He instalado el RunAsAdmin calzo eso me baja a un usuario normal para la mayoría de las tareas, incluido el desarrollo, al igual que en Vista.Recomendado si está atascado como administrador local en XP ^^

Cuestiones relacionadas