Batch o PowerShell para montar unidades en un FQDN

2

Actualmente utilizo un script por lotes para montar mis recursos compartidos de red cada mañana:

NET USE * /DELETE /Y
NET USE Z: \\<IP>\<SHARE> <AUTHENTICATION> /persistent:no
...

Lo cual está bien cuando estoy en la red, pero no funciona fuera del sitio. Tenemos un dominio que apunta a nuestra IP pública, y luego se activa el reenvío de puertos, así que en teoría, puedo

NET USE * /DELETE /Y
NET USE Z: \\fqdn.com\<SHARE> <AUTHENTICATION> /persistent:no
...

Excepto que no funciona en el script por lotes o la interfaz de usuario de Windows.

Estoy pensando que habría una manera de obtener la IP de fqdn.com (que también está convenientemente almacenada en fqdn2.com/ip.txt) pero está muy lejos de mi experiencia de procesamiento por lotes.

Cualquier entrada muy apreciada.

LuckySpoon
fuente
Um, ¿por qué no solo cambiamos la parte final a / persistente: sí? y no mapear tus discos todos los días.
Spencer5051
¿Estás permitiendo que SMB entre desde Internet? Eso es valiente.
afrazier

Respuestas:

1

La tarea es un poco más fácil utilizando PowerShell, ya que tiene toda la potencia del marco .Net a su disposición. Existe una clase llamada System.Net.WebClient que se puede usar para descargar un archivo y obtener su contenido. Puede usar un script de PowerShell similar al que se encuentra a continuación para recuperar el contenido del archivo ip.txt y luego ejecutar los comandos de cmd.exe.

$fqdn = "fqdn domain name goes here"
$url  = "http://$fqdn/ip.txt"

$fqdnIp = (new-object System.Net.WebClient).DownloadString($url)

Write-Host -ForegroundColor Green "Retrieved contents of ${url}: $fqdnIp"

$cmd = "`"NET USE * /DELETE /Y`""
&cmd.exe /c $cmd

$cmd = "`"NET USE Z: \\$fqdnIp\<SHARE> <AUTHENTICATION> /persistent:no`""
&cmd.exe /c $cmd

fuente
¡PERFECTO! ¡Gracias por responder a mi pregunta!
LuckySpoon
0

Solo porque puedes ir a la sitio web en fqdn.com, eso no le da acceso a su red interna o dominio interno. El puerto 80 es el puerto estándar para HTTP (sitios web) que se reenvía desde la IP pública a su servidor web interno. Sin embargo, quizás con algunas otras excepciones, eso es todo lo que está permitido.

Para acceder a su red interna y recursos, necesita una red privada virtual ( VPN ). Una VPN es una conexión segura (encriptada) de Internet a su red interna. VPNing permite que una computadora fuera de su red interna se "sienta" como si estuviera dentro.

Una vez que haya establecido una conexión VPN, su script por lotes funcionará. Puede acceder a las unidades de red internas e impresoras, y hacer todo lo que pueda hacer mientras está en la oficina.

Microsoft ofrece un servidor VPN gratuito con todas las versiones de Windows Server y el cliente está integrado en todas las versiones de Windows. También existen otras soluciones VPN, tanto de hardware como de software, tanto gratuitas como de pago.

Hable con su administrador de Windows / red, es posible que haya una VPN ya instalada.

Keltari
fuente
Creo que es posible que no haya aclarado mi pregunta: todos los puertos se reenvían, etc. Mi punto es: si puedo obtener la dirección IP a la que se resuelve fqdn.com dentro de mi script por lotes, todo está bien.
LuckySpoon
0

Tus scripts deberían funcionar, excepto que debes verificar 4 cosas.

  1. ¿Está funcionando el DNS? intente verificarlo en su máquina externa haciendo ping.
  2. intente deshabilitar WINS en su cliente externo.
  3. ¿Reenvió todos los puertos requeridos? intenta poner el servidor en el host DMZ y ver si funciona.

    Si la IP pública no cambia, entonces codifíquelo en su system32 \ etc \ hosts.


fuente