¿Montar permanentemente el recurso compartido de red sin necesidad de iniciar sesión? (Windows)

26

En un servidor Windows 2008 R2 (estándar) necesito tener una unidad de red montada sin tener un usuario específico para iniciar sesión en la máquina primero. Algo así como un NFSmontaje a través fstabde máquinas Unix. La unidad de red se compartirá a través de un dispositivo BlackArmor (Seagate) (que supongo que ejecuta Samba). El dispositivo puede ser miembro del dominio si es necesario.

Hasta ahora he intentado usar Edit Group Policy-> Configuration-> Windows-> Scripts-> Startupdonde tuve que ejecutar

net use x: \\server\share /user:username password

Sin éxito Al iniciar sesión, la unidad de red se vio en el Explorador de Windows como una unidad de red desconectada.

adamo
fuente
1
¿Desea tenerlo disponible para cualquier persona que inicie sesión en ese servidor, o necesita estar en una letra de unidad específica para algún servicio del sistema?
sysadmin1138
1
Necesito que esté en una letra de unidad específica para que la utilicen las aplicaciones que se ejecutan como un servicio en la máquina. No puedo hacer que el servicio ejecute un "uso neto" al iniciar :(
adamo
¿Has intentado editar la configuración de la política de la computadora local y hacer que el script se ejecute al inicio, desde Configuración del equipo-> Configuración de Windows-> Scripts?
gracias

Respuestas:

22

Esto aparentemente es posible, de acuerdo con esta publicación de StackOverflow .

Sin embargo, antes de publicar el contenido de la respuesta, ¿puedo sugerirle que está complicando demasiado esto?

En situaciones como esta en las que un código defectuoso necesita que un usuario inicie sesión para ejecutarse (como el servidor Domino, gruñe ), he creado una cuenta de servicio que siempre debe iniciar sesión en un servidor determinado y configurar un script de inicio de sesión automático, para que la máquina inicie sesión en la cuenta especificada al reiniciar automáticamente. Sugeriría que la solución más fácil y más compatible para su problema sería hacer lo mismo, y tener la unidad asignada para ese usuario de la cuenta de servicio por Política de grupo o secuencia de comandos de inicio de sesión.

De todos modos, si está decidido a probar esto sin un contexto de usuario, consulte lo siguiente. Es un truco, así que úsalo bajo tu propio riesgo y todo:

Para este hack necesitará SysinternalsSuite de Mark Russinovich: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx

Paso uno: abra un indicador elevado de cmd.exe (Ejecutar como administrador)

Paso dos: Vuelva a elevarse a la raíz con PSExec.exe: navegue a la carpeta que contiene SysinternalsSuite y ejecute el siguiente comando "psexec -i -s cmd.exe". puede probar esto escribiendo "whoami". El -i es necesario porque las asignaciones de unidades deben interactuar con el usuario

Paso tres: Cree la unidad asignada persistente como la cuenta del SISTEMA con el siguiente comando "net use z: \ servername \ sharedfolder / persistent: yes"

¡Es fácil!

ADVERTENCIA: solo puede eliminar esta asignación de la misma manera que la creó, de la cuenta SYSTEM. Si necesita eliminarlo, siga los pasos 1 y 2 pero cambie el comando en el paso 3 a: "net use z: / delete"

NOTA: La unidad asignada recién creada ahora aparecerá para TODOS los usuarios de este sistema, pero la verán mostrada como "Unidad de red desconectada (Z :)". No dejes que el nombre te engañe. Puede afirmar que está desconectado, pero funcionará para todos. Así es como se puede decir que este truco no es compatible con M $.

De comentarios:

Para que funcione después de un reinicio, cree una secuencia de comandos que solo contenga net use z: \ servername \ sharedfolder y configúrelo para que se ejecute al iniciar la computadora, según technet.microsoft.com/en-us/library/cc770556.aspx Esto se ejecutará como la cuenta SYSTEM, por lo que no necesita psexec.

HopelessN00b
fuente
El uso de un recurso compartido de red con nombre de usuario y contraseña no parece funcionar. Veo la "Unidad de red desconectada" pero no puedo acceder a ella "Nombre de usuario y contraseña incorrectos".
spankmaster79
1
@ spankmaster79 < shrug > No estoy seguro de por qué obtendrías ese error (¿bloqueo de cuenta, tal vez?), pero si tienes una pregunta nueva o relacionada, te recomiendo que la hagas como una pregunta en el sitio principal, en lugar de comentar aquí .
HopelessN00b
4

cree su archivo por lotes, que ejecuta este comando. conviértalo a un servicio de Windows. hacer que ese servicio comience al inicio de Windows, y eso es todo.

Puede ser útil: ¿Cómo crear un servicio que ejecute un archivo .bat en Windows 2008 Server?

Farhan
fuente
parece que tomaste mi palabra LITERALMENTE ... ¿Crees que se requiere un inicio de sesión para ejecutar el servicio de Windows? cometí un error tipográfico, que he corregido
Farhan
2

También puede intentar agregar Sysinternals Suite a C: \ SysinternalsSuite

  1. Ejecuta una cmdventana elevada
  2. cd c:\sysint*
  3. psexec -i -s cmd.exe
  4. whoami Para asegurarte de que no eres autoridad
  5. net use x: \\PathToDrive o share /persistent:yes

Debería mostrarse como una unidad desconectada y, para montarlo automáticamente, solo cree un script de inicio con el paso 5. Tendrá que usar los pasos 1 - 5 para eliminar el mapeo, solo cambie 5 para reflejar el uso neto x: / delete

DzSoundNirvana
fuente
0

Encontré una solución para montar permanentemente una unidad. Sin embargo, la unidad no está montada en todas las sesiones. Lo hice en Windows Server 2019.

Digamos que queremos montar un directorio llamado target_dirubicado en target_server. Mi nombre de usuario es my_usernamey mi contraseña my_passworden un dominio llamado MY_DOMAIN. Vamos a montarlo en el T:disco.

En primer lugar, cree un nuevo archivo de texto en cualquier lugar (en su escritorio, por ejemplo). Ábrelo y analiza esto:

@ECHO OFF
net use s: \\target_server\target_dir /persistent:yes

Luego, cámbiele el nombre mount_drive.baty mueva este archivo a C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup.

Asegúrese de que el archivo ya no sea un .txtarchivo.

Ahora, presione Win+R, escriba gpedit.mscy ejecute el Editor de directivas de grupo local .

Busque Computer Configuration\Windows Settings\Scripts (Startup/Shutdown)y haga doble clic en Startup.
Haga clic en y Add...luego Browse...seleccione el archivo que acaba de mover.

A continuación, busque Computer Configuration\Administrative Templates\System\Logon, establezca Always wait for the network at computer startup and logona enabled, Guardar y cerrar.

Abra una terminal elevada para guardar sus credenciales. Luego configure Windows para no desconectar esta unidad después de un tiempo de espera.

cmdkey /add:target_server /user:MY_DOMAIN\my_username /pass:my_password
NET CONFIG SERVER /AUTODISCONNECT:-1

Opcionalmente, puede verificar que todo funcione ejecutando C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup\mount_drive.bat

Reiniciar

vdsbenoit
fuente