Je voudrais un script d'économiseur d'écran/d'ouverture de session qui vérifie si un chemin d'accès réseau est disponible, puis le mapper à une unité. S'il n'est pas disponible, il se déconnecte/ne se connecte pas.
Le chemin réseau est\192.168.1.1\lecteur1
De plus, je dois utiliser nom d'utilisateur/mot de passe pour me connecter à ce chemin.
Vous pouvez utiliser la commande exist
pour vérifier si le chemin est valide:
if exist \\192.168.1.1\drive1 Net Use s: \\192.168.1.1\drive1
Si vous devez fournir des informations d'identification (votre utilisateur Windows actuel n'a pas accès à ce partage, par exemple), ajoutez /user
:
if exist \\192.168.1.1\drive1 Net Use s: \\192.168.1.1\drive1 /user:myDomain\myUser myPassword
S'il existe un risque que le partage existe déjà et que vous souhaitiez le supprimer s'il n'est plus disponible, ajoutez une clause else
:
if exist \\192.168.1.1\drive1 (Net Use s: \\192.168.1.1\drive1) else (Net Use /delete s:)
Et encore une fois, ajoutez le /user
si vous en avez besoin.
Vous pouvez associer tout cela dans un fichier de commandes semblable à celui-ci:
@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 rendrait cela 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}
C'est le code 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
J'utilise Test-Path \\192.168.1.1\volume1
comme suggéré pour vérifier si le chemin du réseau est disponible et ((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")
pour vérifier si la lettre de lecteur existe.
Il est simplement plus simple d'essayer de le mapper à l'aide de l'explorateur de fichiers Windows ou de la commande Net Use. Ou ça marche ou ça ne marche pas.