Batch o PowerShell per montare unità su un nome di dominio completo


2

Attualmente utilizzo uno script batch per montare le condivisioni di rete ogni mattina:

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

Il che va bene quando sono in rete, ma non funziona fuori sede. Abbiamo un dominio che punta al nostro IP pubblico, e quindi entra in azione il port forwarding, quindi in teoria posso

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

Tranne che non funziona nello script batch o nell'interfaccia utente di Windows.

Sto pensando che ci sarebbe un modo per ottenere l'IP di fqdn.com (che è comodamente memorizzato anche su fqdn2.com/ip.txt) ma c'è ben al di fuori della mia esperienza di batch.

Qualsiasi input molto apprezzato.


Ehm, perché non cambiare semplicemente la parte finale in / persistente: sì? e non mappare le tue unità ogni giorno.
Spencer5051,

Stai permettendo alle PMI di entrare da Internet ?! È coraggioso.
Afrazier

Risposte:


1

Il compito è un po 'più semplice usando PowerShell poiché hai tutta la potenza del framework .Net a tua disposizione. Esiste una classe chiamata System.Net.WebClient che può essere utilizzata per scaricare un file e ottenere il suo contenuto. È possibile utilizzare uno script PowerShell simile a quello seguente per recuperare il contenuto del file ip.txt e quindi eseguire i comandi 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

PERFETTO! Grazie per aver effettivamente risposto alla mia domanda!
LuckySpoon,

0

Solo perché puoi visitare il sito Web all'indirizzo fqdn.com, che non ti dà accesso alla tua rete interna o dominio interno. La porta 80 è la porta standard per HTTP (siti Web) che viene inoltrata dall'IP pubblico al server Web interno. Tuttavia, con forse alcune altre eccezioni, è tutto ciò che è permesso attraverso.

Per accedere alla rete e alle risorse interne, è necessaria una rete privata virtuale ( VPN ). Una VPN è una connessione sicura (crittografata) da Internet alla tua rete interna. Il VPN consente a un computer esterno alla rete interna di "sentirsi" come se fosse all'interno.

Dopo aver stabilito una connessione VPN, lo script batch funzionerà. Puoi accedere alle unità e alle stampanti di rete interne e fare qualsiasi cosa tu possa fare mentre sei in ufficio.

Microsoft offre un server VPN gratuito con tutte le versioni di Windows Server e il client è integrato in tutte le versioni di Windows. Esistono anche altre soluzioni VPN, sia hardware che software, sia gratuite che a pagamento.

Parla con il tuo amministratore di Windows / rete, potrebbe essere già presente una VPN.


Penso di non aver chiarito la mia domanda - le porte sono tutte inoltrate ecc. Il mio punto è - se riesco a ottenere l'indirizzo IP che fqdn.com risolve all'interno del mio script batch, va tutto bene.
LuckySpoon

0

i tuoi script dovrebbero funzionare, tranne per il fatto che dovresti controllare 4 cose

  1. Il DNS funziona? prova a verificarlo sul tuo computer esterno tramite ping.
  2. prova a disabilitare WINS sul tuo client fuori sede.
  3. Hai inoltrato tutte le porte richieste? prova a mettere il server sull'host DMZ e vedi se funziona.

    se l'ip pubblico non cambia, allora semplicemente codificalo nei tuoi sistemi32 \ etc \ hosts.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.