Script: cómo verificar si hay una ruta de red disponible y luego asignarla


13

Me gustaría un script de protector de pantalla / inicio de sesión que verifique si hay una ruta de red disponible y luego la asigne a una unidad. Si no está disponible, se desconecta / no conecta.

La ruta de red es \ 192.168.1.1 \ drive1

También necesito usar nombre de usuario / contraseña para conectarme a esa ruta.

Respuestas:


15

Puede usar el existcomando para verificar si la ruta es válida:

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

Si necesita proporcionar credenciales (es decir, su usuario actual de Windows no tiene acceso a ese recurso compartido), agregue /user:

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

Si existe la posibilidad de que el recurso compartido ya exista y desea eliminarlo si ya no está disponible, agregue una elsecláusula:

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

Y una vez más, agregue el /usersi lo necesita.

Puede vincular todo esto en un archivo por lotes similar al siguiente:

@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, solo estoy pegando eso en el bloc de notas y guardando como .vbs, pero cuando ejecuto una tarea, ¿aparece el error de Visual Basic?
— FernandoSBS

1
Ese comando es un comando por lotes: debería funcionar desde cualquier archivo por lotes estándar.
— Geoff

C: \ Windows> si existe \\ 192.168.1.1 \ volume1 (uso neto y: \\ 192.168.1.1 \ volume1) e lse (uso neto / eliminar y:) No se pudo encontrar la conexión de red. Hay más ayuda disponible escribiendo NET HELPMSG 2250.
— FernandoSBS

Agregaré una edición ...
— Geoff

¿Lo siento? (5 caracteres)
— FernandoSBS

6

Powershell facilitaría esto:

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, solo estoy pegando eso en el bloc de notas y guardando como .vbs, pero cuando ejecuto una tarea, ¿aparece el error de Visual Basic?
— FernandoSBS

1
Guárdelo como .ps1 y ejecútelo desde Powershell.
— Austin T French

No estoy familiarizado con PowerShell, ¿cómo puedo automatizarlo en el Programador de tareas?
— FernandoSBS

Realmente deberías dividir las 2 preguntas. Este es un sitio de control de calidad. Además, búscalo en Google si aún no lo has hecho: google.com/…
— Austin T French

Ok lo tengo. ¿Cuál es la ventaja de usar powershell?
— FernandoSBS

0

Es más simple tratar de mapearlo usando el Explorador de archivos de Windows o usando el comando net use. O funciona o no funciona.


Si está disponible, quiero conectarme automáticamente cuando inicio sesión / protector de pantalla, si no es así, quiero que se elimine de las unidades asignadas. Entonces, lo que sugirió no es una opción.
— FernandoSBS

No entiendo, si emite un uso neto, si el comando tiene éxito, se conectará. Si el comando falla, se elimina de las unidades asignadas. Me parece simple.
— mdpc

0

Este es el código final:

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 

Lo uso Test-Path \\192.168.1.1\volume1como se sugiere para verificar si la ruta de red está disponible y ((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")para verificar si existe la letra de la unidad.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.