Puede usar el exist
comando 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 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, agregue el /user
si 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=
Powershell facilitaría esto:
fuente
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.
fuente
Este es el código final:
Lo uso
Test-Path \\192.168.1.1\volume1
como 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.fuente