none
Como elevar los permisos de administrador en W10 RRS feed

  • Pregunta

  • Hola 

    Trabajo en Visual Studio 2015, Windows Forms, Windows 10

    El problema es que en mi maquina que tiene W10 no da problemas pero en la maquina del cliente si da problemas en W10

    Le agregue un archivo de manifiesto pero igual me da problemas

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
          <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
            <!-- Opciones del manifiesto UAC
                 Si quiere cambiar el nivel del Control de cuentas de usuario de Windows reemplace el 
                 nodo requestedExecutionLevel por uno de los siguientes.
    
            <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
            <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
            <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />
    
                Especificar el elemento requestedExecutionLevel deshabilitará la virtualización de archivos y registros. 
                Quite este elemento si la aplicación necesita esta virtualización para la compatibilidad
                con versiones anteriores.
            -->
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
          </requestedPrivileges>
        </security>
      </trustInfo>

    El error es

    NO me deja copiar en C:\..


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    lunes, 21 de enero de 2019 21:33

Respuestas

  • Pido disculpas, el cambio del manifiesto te lo dije mal. No se trata de poner true en el uiAccess, sino de que se encuentre activado el requireAdministrator. Viendo el manifiesto que pusiste, esta bien como lo tienes (no hay que poner true). Si no lo esta tomando en cuenta en tiempo de ejecucion, revisa en las propiedades del proyecto, Application, "Icon and manifest". Verifica que se encuentra seleccionado el app.manifest que agregaste.

    Todo lo demas confirma lo que te he dicho. A la vista del primer error, el problema es de permisos (que son mas restrictivos en w10 que en w7). Ojo, revisa con el Explorador de Windows los permisos de esa carpeta, no vaya a ser que efectivamente no tenga permiso de escritura para el usuario de la aplicacion (ni para el administrador, una vez corregido el manifiesto) y por lo tanto el problema no sea culpa del programa, sino de la configuracion del sistema.

    martes, 22 de enero de 2019 13:24
    Moderador

Todas las respuestas

  • Hola   Pedro Ávila

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comento que estaremos realizando una revisión a profundidad acerca del inconveniente que se te está presentando.

    Proporcionaremos una respuesta lo más pronto posible.

    Gracias por usar los foros de MSDN.

    Pedro Alfaro
     ____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
    lunes, 21 de enero de 2019 23:34
    Moderador
  • No se ven la imágenes que has puesto, salen todas como una X en negro. Pero si lo que pasa es que no te deja copiar en C:\, el problema es que en los Windows modernos se requiere permiso de administrador para grabar en esa ubicación. Pero en tu manifiesto has pedido requireAdministrator="false", y por lo tanto no te asigna el correspondiente permiso. Si lo cambias por "true" debería funcionar (pero, claro, requerirá que uses una cuenta de administrador, puesto que quieres escribir en una ubicación que solo está permitida a los administradores)
    martes, 22 de enero de 2019 7:33
    Moderador
  • Hola @Alberto

    Lo que hago es coger un archivo que puede estar en cualquier parte como en D:\ o en el escritorio, etc

    Cuando lo escojo lo muevo a una carpeta oculta en la cual registro la ruta en una db, la ruta que he estado utilizando es la siguiente.

     _destinoRutaArchivo = string.Concat(
                    Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), string.Concat(@"\", nombreArchivo));

    Probare con esta otra:

    _destinoRutaArchivo = string.Concat(
                    Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), string.Concat(@"\", nombreArchivo));

    El error que sale en la primera ruta es sobre permisos. El problema es solo en W10, en W7 funciona normal.

    @Alberto, poniendo true me da este error

    Saludos!


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú





    martes, 22 de enero de 2019 11:49
  • Pido disculpas, el cambio del manifiesto te lo dije mal. No se trata de poner true en el uiAccess, sino de que se encuentre activado el requireAdministrator. Viendo el manifiesto que pusiste, esta bien como lo tienes (no hay que poner true). Si no lo esta tomando en cuenta en tiempo de ejecucion, revisa en las propiedades del proyecto, Application, "Icon and manifest". Verifica que se encuentra seleccionado el app.manifest que agregaste.

    Todo lo demas confirma lo que te he dicho. A la vista del primer error, el problema es de permisos (que son mas restrictivos en w10 que en w7). Ojo, revisa con el Explorador de Windows los permisos de esa carpeta, no vaya a ser que efectivamente no tenga permiso de escritura para el usuario de la aplicacion (ni para el administrador, una vez corregido el manifiesto) y por lo tanto el problema no sea culpa del programa, sino de la configuracion del sistema.

    martes, 22 de enero de 2019 13:24
    Moderador