Script: come verificare se è disponibile un percorso di rete e quindi mapparlo


13

Vorrei uno screen saver / script di accesso che controlla se è disponibile un percorso di rete e quindi lo mappa su un'unità. Se non è disponibile, si disconnette / non si connette.

Il percorso di rete è \ 192.168.1.1 \ drive1

Inoltre ho bisogno di usare username / password per connettermi a quel percorso.

Risposte:


15

È possibile utilizzare il existcomando per verificare se il percorso è valido:

if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1

Se devi fornire le credenziali (ovvero il tuo attuale utente Windows non ha accesso a quella condivisione), aggiungi /user:

if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1 /user:myDomain\myUser myPassword

Se esiste la possibilità che la condivisione esista già e desideri eliminarla se non è più disponibile, aggiungi una elseclausola:

if exist \\192.168.1.1\drive1 (net use s: \\192.168.1.1\drive1) else (net use /delete s:)

E ancora una volta, aggiungi il /userse ne hai bisogno.

Puoi collegare tutto questo in un file batch simile al seguente:

@echo off
if exist \\192.168.1.1\drive1 (set shareExists=1) else (set shareExists=0)
if exist y:\ (set driveExists=1) else (set driveExists=0)
if %shareExists%==1 if not %driveExists%==1 (net use y: \\192.168.1.1\drive1)
if %shareExists%==0 if %driveExists%==1 (net use /delete y:)
set driveExists=
set shareExists=

ok sto solo incollando quello nel blocco note e salvando come .vbs ma quando eseguo un'attività che dà errore di Visual Basic?
FernandoSBS,

1
Tale comando è un comando batch: dovrebbe funzionare da qualsiasi file batch standard.
Geoff,

C: \ Windows> se esiste \\ 192.168.1.1 \ volume1 (net use y: \\ 192.168.1.1 \ volume1) e lse (net use / delete y:) Impossibile trovare la connessione di rete. Ulteriori informazioni sono disponibili digitando NET HELPMSG 2250.
FernandoSBS,

Aggiungerò una modifica ...
Geoff,

Mi dispiace? (5 caratteri)
FernandoSBS,

6

Powershell renderebbe questo facile:

If(Test-Path \\192.168.1.1\Drive1)
  {
    net use M: \\192.168.1.1\Drive1 /user:Domain\UserName Password
  }
else {net use M: /delete > nul}

ok sto solo incollando quello nel blocco note e salvando come .vbs ma quando eseguo un'attività che dà errore di Visual Basic?
FernandoSBS,

1
Salvalo come .ps1 ed eseguilo da Powershell.
Austin T, francese,

non ho familiarità con PowerShell, come posso automatizzarlo in Utilità di pianificazione?
FernandoSBS,

Dovresti davvero dividere le 2 domande. Questo è un sito di controllo qualità. Inoltre, cercalo su Google se non l'hai già fatto: google.com/…
Austin T, francese,

ok capito. Qual è il vantaggio di usare PowerShell?
FernandoSBS,

0

È semplicemente più semplice provare a mapparlo utilizzando Esplora file di Windows o utilizzando il comando net use. O funziona o no.


Se è disponibile, voglio collegarmi automaticamente quando accedo / screen saver, in caso contrario, voglio che venga rimosso dalle unità mappate. Quindi quello che hai suggerito non è un'opzione.
FernandoSBS,

Non capisco, si emette un uso netto, se il comando riesce verrà collegato. Se il comando ha esito negativo, viene rimosso dalle unità mappate. Mi sembra semplice.
mdpc,

0

Questo è il codice finale:

function run{
net use
If(Test-Path \\192.168.1.1\volume1)
  {
    if (((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")) 
        {
            "already mounted and accessible"
        }
    else
        {
            net use Y: \\192.168.1.1\volume1
            "mounting"
        }
  }
else { 
    if (((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory"))
        {
            net use Y: /delete
            "removing"
        }
}
exit 4
}

run 

Uso Test-Path \\192.168.1.1\volume1come suggerito per verificare se il percorso di rete è disponibile e ((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")per verificare se esiste la lettera dell'unità.

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.