Tenemos una aplicación que mapea mediante programación las unidades de red. En Vista con UAC activado, obtenemos algunos problemas extraños.Vista UAC - Unidades de red de localización de fallas
Nuestra aplicación mapea el disco no elevado, por lo que si el usuario navega por el explorador y hace doble clic para ejecutar un exe, solicita UAC. Entonces, cuando lo aprueban, solicita un nombre de usuario/contraseña para compartir ... Extraño ya que las credenciales se guardan.
Resulta que un proceso elevado no puede acceder a una unidad asignada que se asignó a un proceso no elevado.
Para ver este tema en la acción, hacer los pasos siguientes:
- Ejecutar cmd.exe sin UAC
- Ejecutar "uso neto w: \ yourhostname \ yourShare/user: yourUser YourPassword/persistente: sí "
- ejecutar cmd.exe como Administrador
- tipo 'w', y ver el mensaje de error
En este punto se puede ejecutar sin formato" red use "y vea que la conexión en el cmd elevado no está disponible, pero el otro cmd no elevado lo ve como OK.
¿Alguien conoce una solución para solucionar este problema? o tal vez una forma de asignar una unidad de red a "Todos los usuarios"?
Esta pregunta puede pertenecer a serverfault. –
No, es una pregunta sobre programación: necesitan heredar privilegios a través de la elevación. Aunque no sé la respuesta :) – bdonlan
Esta es definitivamente una pregunta de programación, usamos WNetAddConnection2 y WNetCancelConnection2 desde nuestra aplicación, pero esto es análogo al comando "net use". – jonathanpeppers