| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 01 Ago, 2008 12:37 pm Asunto: Windows Vista y Bloqueo de programas al iniciar |
|
|
Un saludo a la comunidad del foro.
tengo un pequeño detallito.
Cuando desarrollamos una aplicacion que va a ejecutarse en el inicio de Windows siempre usamos la clave HKEY_LOCAL_MACHINE .... \Run, y dentro de ella establecemos el nombre de nuestro ejecutable y la ruta donde se encuentra este, bien en Versiones de Windows espesificamente XP hacia abajo, esto no significa ningun error pues abrimos el registro de Windows, modificamos la informacion y nuestro programa se ejecuta sin pena ni gloria al iniciar nuestra computadora.
Ahora bien esto NO SUCEDE en Windows Vista, aun le indiquemos la ruta y el nombre del archivo en la clave del registro anteriormente mencionada.
Segun este enlace de la ayuda de Microsoft, en Windows Vista las aplicaciones registradas de esta manera son detenidas por el mismo sistema y debe ser el usuario quien las active si realmente quiere que el programa desarrollado se ejecute al iniciar nuestro ordenador, al parecer esto no tiene mucha relacion con la famosa UAC de Windows Vista.
En si el enlace menciona que existen 4 maneras de poder hacer que nuestra aplicacion no sea detenida por el sistema de Windows, en el orden de prioridad estas vienen asi
• Regla de certificado (usando VeriSign o alguna emisora de Certificados)
• Regla hash (crear un hash usando un instalador - GUID)
• Regla de ruta (la que comunmente se usaba con XP)
• Regla de zona de Internet
• Regla predeterminada
viendo esta problematica mi pregunta es la siguiente. (_Leo espero que puedas leer esto y puedas explicarnos mejor la información.)
¿Existe alguna manera de poder modificar el registro de manera manual por nuestro propio sistema para usar el metodo hash?
Estas semanas he estado leyendo y he comprobado que si el software no es emitdo por una autoridad de confianza, el clasico mensaje de "Windows ha bloqueado algun software que desea iniciar" siempre se va a presentar en la barra de menú de Windows Vista.
existe tambien la posibilidad de realizar la creacion del certificado dentro de la misma pagina, pero como prueba unicamente, entiendo que nuestro producto no puede ser vendido o aceptado por Windows Vista.
El metodo Hash puede ser usado si la instalación se genera con InstallShield con compatibilidad de Windows Vista, generando asi una clave GUID que permite que el software sea reconocido y no tenga problemas, lamentablemente mi version de prueba de 30 dias de InstallShield ha llegado a su fin y ya no me permite ser usada, para generar el Hash del archivo, asimismo la misma página indica que se ha cambiado la emison de códigos.
| Cita: | | "En versiones anteriores de Windows (Windows XP y Windows Server 2003), el hash predeterminado era MD5. Se ha actualizado el hash de una directiva de restricción de software para que sea compatible con el nuevo algoritmo (SHA-256) dentro de la actualización total de Windows por lo que respecta a algoritmos criptográficos. Los equipos que ejecutan Windows Vista siempre intentarán leer el hash SHA256 en primer lugar." |
Por su lectura a este mensaje Gracias.
Si alguien tiene información relevante a este contexto, seria bueno anexarlo y complementar, ya que cada persona entiende de una manera muy diferente y puede darnos otro punto Vista.
Saludos amigos del foro!!! _________________
 |
|
| Volver arriba |
|
 |
SumSum Lt JG


Registrado: 06 Oct 2002Mensajes: 52
|
Publicado: Lun 04 Ago, 2008 9:02 pm Asunto: |
|
|
Yo tuve como primera experiencia con Windows Vista un problema de ejecución en varias partes del programa por el bloqueo aunque no tal y como dices ya que mi programa no se ejecutaba en el inicio.
La solución la tuve al deshabilitar el control de cuentas de usuario.
Es decir en Panel de Control->Cuentas de Usuario->Activar o desactivar el control de cuentas.
De esta forma solucioné todos los problemas y además quedaron muy agradecidos ya que dejaron de saltarles los mensajes constantes de bloqueo a todo lo que querían hacer.
No sé si te ayudará para la ejecución del inicio pero a lo mejor hay suerte. _________________ Asun |
|
| Volver arriba |
|
 |
SumSum Lt JG


Registrado: 06 Oct 2002Mensajes: 52
|
Publicado: Lun 04 Ago, 2008 9:11 pm Asunto: |
|
|
Perdón acabo de ver que ponías que no tenía que ver con control UAC.
De todas formas por si a caso he visto por la red y comprobado en un equipo con este sistema operativo que en el registro de Windows existe la entrada:
Equipo\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA
Debiendo ser el valor 0 para quitarlo _________________ Asun |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Lun 04 Ago, 2008 10:59 pm Asunto: |
|
|
Hola Sumsum.
Efectivamente al parecer no hay relacion directa con el control UAC de Windows vista, al realizar la operación que tu me comentas, se presenta un Mensaje en la barra de tareas que indica que la seguridad esta en riesgo, "Compruebe la Configuración de Cuentas de Usuario", bien lo que deseo realizar es que un programa pueda instalarse y ejecutarse en el inicio de Windows, sin que existan los molestos mensajes, que sea transparente y que no afecte a la seguridad de Windows.
En algunos casos los usuarios con Experiencia sabemos que no hay mucho problema y cosas por el estilo pero para usuarios relativamente novatos esto puede causar algo de paranoia pues tanto mensaje de riesgo hace o sienta que el sistema es inestable. Indicando que nuestro Software es el causante de todo esto.
Gracias por la información al parecer he descubierto "otras" opciones dentro del registro donde nuestros programas pueden iniciar, y esto es que pueden iniciar como Controladores o Drivers de Windows antes del Logon, haciendo que la carga del sistema o de nuestro programa se active antes que el UAC (... informacion borrada por seguridad...).
Cualquier otro comentario es bien recibido. _________________
 |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 07 Ago, 2008 6:56 pm Asunto: |
|
|
Para acceder a "HKEY_LOCAL_MACHINE" se necesitan privilegios de administrador. En Windows Vista incluso una cuenta de administrador no tiene todos los privilegios activados por defecto.
Para indicarle a Windows Vista que necesitamos privilegios de administrador basta con que añadas el siguiente archivo de recursos al proyecto:
http://telefonica.net/web/ljfg/temp/vista_admin_rc.zip
o bien usar la clave de usuario, que no necesita privilegios de administrador:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Para más detalles:
[Create and Embed an Application Manifest (UAC)]
http://msdn.microsoft.com/en-us/library/bb756929.aspx |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 17 Oct, 2008 12:04 pm Asunto: |
|
|
_Leo:
Existe alguna manera de elevar los privilegios de nuestro ejecutable, he visto lo siguiente en Windows Vista y con el programa Windows Defender, he revisado lo siguiente, Mi aplicación como muchos de nosotros que desarrollamos no esta firmada digitalmente, pero tambien he visto a menos que no lo haya echo bien, que el programa de Firebird tampoco lo esta,
la unica diferencia es que Firebird corre como nt autority\system he buscado en la ayuda, pero no existe ninguna referencia sobre ello, en msdn indican que debo hacerlo via RC o via firma digital, de que manera puedo elevar los privilegios de mi aplicacion y ejecutarla como usuario "nt authority\system"? haciendo que no afecte si la aplicación se ejecuta en Windows XP. pues según yo con el manifest, que has puesto "debe" funcionar, pero sigue apareciendo el dichoso mensaje de "Windows ha bloqueado algunos programas de Inicio..."
Gracias por la colaboración. _________________
 |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mar 21 Oct, 2008 10:47 am Asunto: |
|
|
Para elevar los privilegios basta con usar el RC que ya había publicado. El problema es cuando intentamos elevar los privilegios en el arranque de Windows Vista, automáticamente como medida de seguridad el programa será bloqueado.
En el siguiente enlace de Microsoft, nos dice que si necesitamos elevar los privilegios para un programa que se ejecuta en el arranque deberíamos hacer que el ejecutable principal no eleve los privilegios por defecto (en el RC anterior sustituiríamos "requireAdministrator por "asInvoker") y luego las tareas que necesiten especialmente elevar los privilegios los pongamos en un segundo ejecutable (o servicio):
http://msdn.microsoft.com/en-us/library/bb325654.aspx
También podríamos usar el "Programador de Tareas" y arrancar desde ahí nuestro ejecutable como administrador. Para ello podemos usar la pequeña librería del siguiente enlace, que crea una tarea en Windows vista para que nuestro ejecutable arranque al iniciar sesión (si estamos en una versión anterior a Vista usara el registro en vez del Programador de Tareas):
http://telefonica.net/web/ljfg/temporal/startupvista.zip
Y la forma de usarla (la he probado en las versiones 6 y 2009), añadimos el archivo "startupx.lib" a nuestro proyecto, añadimos la cabecera "startupx.h":
// Para añadir el ejecutable al arranque:
String app = Application->ExeName;
RunOnStartup("MiPrograma", app.c_str());
// Para quitarlo:
DeleteStartup("MiPrograma");
(Para que se entienda mejor, la librería hace por código lo que se explica manualmente en el siguiente enlace: http://blogs.techrepublic.com.com/window-on-windows/?p=616)
(Más información sobre "ITaskService": http://msdn.microsoft.com/es-es/magazine/cc163350.aspx) |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 22 Oct, 2008 10:37 pm Asunto: |
|
|
Gracias _Leo
Como siempre funciona correctamente (he estado probando estos dias) desde que me ha llegado el aviso de los comentarios y agradesco el apoyo.
Trataré de realizar la rutina para verificar si el servicio se ejectua al principio de Windows vista pues aun que no afecta que el usuario escriba 2 o 3 veces la misma operacion hasta que se dá cuenta que al reiniciar su máquina el programa es ejecutado, en XP hacia abajo usando el registro de Windows es sencillo para verificar la existencia de una cadena en el \\Run de la HKEY_CURRENT_USER O HKEY_LOCAL_MACHINE, así que ahi no hay inconveniente en la función.
Y ante todo agradecido por las páginas que me has enviado contienen información relevante que a veces por no buscar bien las pasamos por alto. _________________
 |
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Lun 28 Sep, 2009 2:44 pm Asunto: enlace perdido |
|
|
hola _leo viendo este tema por necesidad he tratado de descargar del siguiente enlace
http://telefonica.net/web/ljfg/temporal/startupvista.zip
pero me dice que la pagina no existe o el enlace esta roto, me podrias subir ese . zip por favor
gracias y saludos _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Mar 29 Sep, 2009 1:11 pm Asunto: Agradecido |
|
|
_leo muchas gracias acabado de descargarlo
Una pregunta:
estoy asumiendo que sirve tambien para windows xp servipack 2 y 3, asumo bien?
gracias _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 01 Oct, 2009 10:02 am Asunto: Re: Agradecido |
|
|
| ifrit escribió: |
estoy asumiendo que sirve tambien para windows xp servipack 2 y 3, asumo bien? |
Si |
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Jue 01 Oct, 2009 4:08 pm Asunto: |
|
|
Hola _Leo agradecido
Pero...me surge una duda y una necesidad: Que debo cambiarle a los recursos para que mi aplicacion se comporte como administrador del dominio no solo de la pc?
Una vez yo postee una pregunta sobre como podria copiar una carpeta por la red sin yo tener privilegios y aca te lo explico mejor (si me lo permites) porque no quiciera que me mal interpretaras o pensaras que deseo hacer alguna trastada.
Yo tengo un programa desarrollado que se encarga de crear salvas y restauras a traves de sql server que esta instalado en un servidor y deseo que si en ese servidor yo dejo las salvas; un usuario del domminio sin privilegios ninguno pueda accesder a esa salva , conociendo de antemano la ubicacion del fichero, y hacer una restaura en su aplicacion sin necesidad de yo tener que darle esos privilegios a traves del servidor. Espero haberme hecho entender
muchas gracias y mis saludos _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 01 Oct, 2009 10:26 pm Asunto: |
|
|
| Supongo que tendrás que darle los privilegios necesarios en el dominio a ese usuario.. si lo que quieres decir es como un usuario sin los privilegios necesarios puede acceder a recursos para los que no tiene permiso pues no tengo ni idea. |
|
| Volver arriba |
|
 |
ifrit Master


Registrado: 12 Jun 2007Mensajes: 509Ubicación: La Habana, Cuba
|
Publicado: Lun 05 Oct, 2009 3:57 pm Asunto: |
|
|
_Leo muchas gracias de todos modos por la ayuda.
Quiciera seguir con el tema y aca te planteo otra duda, como podria yo acceder a un fichero o carpeta que esta en el server siendo un usuario normal (sin permisos ), pero conociendo el nombre de usuario y password del server?
muchas gracias y saludos _________________ Todos somos ignorantes, lo que no todos ignoramos lo mismo... |
|
| Volver arriba |
|
 |
|