Si está utilizando unidades de red asignadas, probablemente haya notado que no se muestran en las aplicaciones que se ejecutan con privilegios de administrador (incluidos cmd y PowerShell). El valor por defecto Control de cuentas de usuario (UAC) la configuración no permite acceder a las unidades de red asignadas (a través de net use) desde aplicaciones que se ejecutan en modo elevado (Ejecutar como administrador). Esto significa que cuando ejecuta el símbolo del sistema o un administrador de archivos (como Total Commander) con privilegios elevados, no mostrarán las letras de unidad de las carpetas compartidas montadas.
Puede enfrentarse a un problema de este tipo si se cumplen las siguientes condiciones:
- Las unidades de red se asignan en la sesión del usuario (a través de GPO o manualmente a través de
net use); - UAC está habilitado en la computadora (el parámetro GPO Control de cuentas de usuario: comportamiento de la solicitud de elevación para los administradores en el modo de aprobación de administrador se establece en el valor predeterminado «Solicitar credenciales»);
- El usuario actual tiene permisos de administrador local en la computadora y ejecuta la aplicación en el modo «Ejecutar como administrador».
En este caso, las unidades de red se muestran en el Explorador de archivos de Windows y en las aplicaciones, pero no se muestran en ninguna aplicación que se ejecute en modo elevado.
En este artículo, mostraremos cómo permitir el acceso a unidades de red asignadas desde las aplicaciones que se ejecutan en modo elevado en Windows 10. Este problema ocurre tanto para las unidades de red asignadas a través de la Política de grupo como para las carpetas conectadas por los usuarios.
Las unidades de red asignadas no se muestran en las aplicaciones de Windows
Comprobemos que no puede acceder a la unidad de red asignada conectada en modo normal desde una aplicación elevada con UAC habilitado. Por ejemplo, abramos un símbolo del sistema con permisos de usuario y verifiquemos si puede acceder al contenido de la unidad de red asignada Z: .
Net use
Dir z:
El comando debe enumerar el contenido de la carpeta de red compartida.
Si abre el símbolo del sistema en la sesión actual como administrador e intenta acceder a la misma unidad, recibirá el mensaje de que no se ha encontrado la ruta a la unidad:
The system cannot find the path specified.

Este comportamiento de Windows puede causar algunos inconvenientes cuando ejecuta aplicaciones con frecuencia en modo elevado. Es posible ejecutar aplicaciones sin privilegios de administrador, pero esto no siempre es aplicable.
¿Por que sucede? Esta peculiaridad está relacionada con el mecanismo de UAC para un usuario con privilegios de administrador local. El asunto es que cuando este usuario inicia sesión, se crean dos tokens de acceso: el primer token proporciona acceso con privilegios de administrador deshabilitados (el token de acceso filtrado, con el que se ejecutan la mayoría de las aplicaciones) y el segundo es el token de administrador con privilegios completos en el sistema (todas las aplicaciones aprobadas para elevación por UAC se ejecutan en este contexto).
Puedes usar whoami /all comando en dos sesiones cmd.exe (normal y elevada) del mismo usuario y compare los privilegios actuales, puede ver que son muy diferentes. La siguiente tabla enumera las diferencias en los grupos de seguridad y los privilegios actuales en cada sesión.
| Sesión de usuario normal | Sesión de usuario elevada | |
| Grupo de seguridad |
Etiqueta obligatoria Media Etiqueta de nivel obligatorio S-1-16-8192 |
Etiqueta obligatoria Etiqueta de alto nivel obligatorio S-1-16-12288 |
| Privilegios | SeLockMemoryPrivilege
SeMachineAccountPrivilege SeShutdownPrivilege SeChangeNotifyPrivilege SeUndockPrivilege SeIncreaseWorkingSetPrivilege SeTimeZonePrivilege |
SeLockMemoryPrivilege
SeIncreaseQuotaPrivilege SeMachineAccountPrivilege SeSecurityPrivilege SeTakeOwnershipPrivilege SeLoadDriverPrivilege SeSystemProfilePrivilege SeSystemtimePrivilege SeProfileSingleProcessPrivilege SeIncreaseBasePriorityPrivilege SeCreatePagefilePrivilege SeBackupPrivilege SeRestorePrivilege SeShutdownPrivilege SeSystemEnvironmentPrivilege SeChangeNotifyPrivilege SeRemoteShutdownPrivilege SeUndockPrivilege SeManageVolumePrivilege SeImpersonatePrivilege SeCreateGlobalPrivilege SeIncreaseWorkingSetPrivilege SeTimeZonePrivilege SeCreateSymbolicLinkPrivilege SeDelegateSessionUserImpersonatePrivilege |

Las aplicaciones bajo el mismo usuario se pueden ejecutar en dos contextos cuando UAC está habilitado (con privilegios y sin privilegios). Cuando asigna carpetas de red compartidas, el sistema crea enlaces simbólicos (DosDevices) que almacenan la asignación de letras de unidad a las rutas UNC. Estos enlaces están asociados con el token de acceso al proceso actual y no están disponibles para otros tokens.
El problema inverso también puede ocurrir: cuando el usuario con permisos de administrador en la computadora está conectando unidades de red utilizando los scripts de inicio de sesión de la Política de grupo, tareas programadas o trabajos SCCM (que se ejecutan con privilegios elevados), estas unidades no son visibles para el usuario en Explorador de archivos (proceso sin privilegios).
Como solución alternativa, puede montar unidades de red desde el símbolo del sistema elevado mediante los comandos: net use o rundll32 SHELL32.dll,SHHelpShortcuts_RunDLL Connect .
Enablelinkedconnections: Habilitación de unidades asignadas en las aplicaciones elevadas
Existe una solución más sencilla. Para implementarlo, debe realizar algunos cambios en el registro:
- Abra el editor de registro (regedit.exe);
- Ir a la clave de registro HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows CurrentVersion Policies System;
- Cree un nuevo parámetro (tipo DWORD) con el nombre EnableLinkedConnections y el valor 1;
Consejo. El mismo cambio se puede hacer con un solo comando:reg add "HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesSystem" /v "EnableLinkedConnections" /t REG_DWORD /d 0x00000001 /fo con PowerShell:
New-ItemProperty -Path 'HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem' -Name EnableLinkedConnections -Value 1 -PropertyType 'DWord' - Reinicie su computadora (o reinicie el servicio LanmanWorkstation con el comando:
get-service LanmanWorkstation |Restart-Service –Forcey vuelva a iniciar sesión en Windows).
Después de reiniciar la computadora, asegúrese de que el usuario pueda ver las unidades de red asignadas en los programas que se ejecutan con derechos de administrador. La afirmación inversa es cierta: todas las unidades de red asignadas en el modo elevado también estarán disponibles en la sesión de usuario sin privilegios.
Esto funciona en todas las versiones de Windows, desde Vista hasta Windows 10 / Windows Server 2019.

¿Cómo funciona? Después de habilitar el EnableLinkedConnections parámetro de registro, LanmanWorkstation y LSA (lsass.exe) buscarán un segundo token de acceso asociado a la sesión del usuario actual. Si se encuentra este token, la lista de unidades de red asignadas se copiará de un token a otro. Por lo tanto, las unidades de red asignadas en el modo privilegiado serán visibles en el modo normal y viceversa.
mklink /D c:docs \dublin-fs1docs
Puede acceder a esta unidad tanto en modo normal como elevado. Cabe señalar que uno de los inconvenientes de este método es que accede a la carpeta compartida como usuario actual. Es imposible utilizar la cuenta de otro usuario como en el caso de net use mando.
Después de habilitar el parámetro EnableLinkedConnections, las unidades asignadas también estarán disponibles desde las Tareas programadas iniciadas con el usuario actual. Si la tarea se ejecuta como LocalSystem u otro usuario, las unidades de red asignadas del usuario actual no estarán disponibles.

