Cómo acceder al directorio asignado desde un servicio de Windows

4

Como regla general, los servicios de Windows no pueden acceder a las unidades asignadas y, en su lugar, debe usar las rutas UNC.

Estoy convencido de que hay una forma de evitar esto para que un servicio de Windows pueda acceder a una unidad asignada, pero no puedo encontrarla en ningún lado.

Mi caso específico es que estoy ejecutando Tomcat7 en un servidor Windows 2008.

Edd
fuente
No es algo que haya hecho antes, pero estoy seguro de que he visto que se puede hacer.
Edd

Respuestas:

9

Una alternativa al uso de directorios asignados o rutas UNC es usar enlaces simbólicos.

Los enlaces simbólicos de NTFS (enlaces simbólicos) pueden referirse a una ruta UNC pero difieren de los accesos directos en que no hay redirección a la ubicación solicitada. Si creas un enlace simbólico como sigue ...

mklink /D C:\myLink \\127.0.0.1\c$

... entonces cuando abres C:\myLink La dirección de la carpeta en la que se encuentra será C:\myLink y no \\127.0.0.1\c$, que es lo que obtendrías si myLink fuera un acceso directo y no un enlace simbólico. Esto es importante si su aplicación tiene problemas de compatibilidad con las rutas UNC.

Además, el enlace simbólico existe en el sistema de archivos y no es necesario volver a crearlo después del inicio de sesión, ya que su unidad asignada promedio requiere (generalmente automatizada) y, por lo tanto, está disponible para los servicios de Windows.

Edd
fuente
2
Poca información de mi experiencia, el comando solo funciona en el símbolo del sistema de Windows y no en Power Shell
Muffun
1

He encontrado una solución a este problema que parece estar funcionando bien: https://stackoverflow.com/a/7867064/669645

Pasos que tomé:

  1. Crea un archivo bat que contenga el comando. net use z: \servername\sharedfolder /persistent:yes
  2. Crear una tarea programada
    • Establecer usuario como "Sistema"
    • Agrega una acción para ejecutar el archivo bat
  3. Ejecutar manualmente la tarea (no es necesario establecer un horario)

Nota: la unidad aparecerá como " Unidad de red desconectada (Z :) "pero seguirá siendo accesible para todos los usuarios registrados y también para los servicios de Windows

Edd
fuente
Esto realmente no funciona para mí, ya que la unidad asignada no persiste después de un reinicio (correcto en Windows 7 pero no en Windows Server 2008). Si programo la tarea para que se ejecute en el inicio, aún no puedo ver la unidad asignada
Edd