14 votos

Script - ¿Cómo comprobar si una ruta de acceso de red está disponible y, a continuación, el mapa

Me gustaría un protector de pantalla / logon script que comprueba si la ruta de acceso de red está disponible y, a continuación, asignar a una unidad. Si no está disponible se desconecta/no se conectan.

Ruta de acceso de red es \192.168.1.1\unidad1

También necesito usar nombre de usuario/contraseña para conectarse a ese camino.

16voto

Geoff Puntos 1670

Usted puede utilizar el exist comando para comprobar si la ruta de acceso es válida:

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

Si usted necesita para proporcionar credenciales (usuario actual de Windows no tiene acceso a ese recurso compartido), agregar /user:

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

Si hay una posibilidad de que el recurso compartido ya existe, y desea eliminarla si ya no se encuentra disponible, agregar un else clá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, añadir el /user si la necesita.

Usted puede atar todo esto junto en un archivo por lotes similar a la 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=

6voto

AthomSfere Puntos 8316

Powershell, sería fácil:

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}

0voto

Chris Granade Puntos 149

Es sólo más simple de tratar de hacer un mapa utilizando el explorador de Archivos de Windows o mediante el comando net use. Ya sea que funciona o no.

0voto

bretbardolees Puntos 1

Esta es la versión final del código:

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 

Yo uso Test-Path \\192.168.1.1\volume1 como se sugiere para comprobar si la ruta de acceso de red está disponible y ((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory") para comprobar si la letra de unidad que existe.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: