Comment exécuter un fichier batch à partir d’un partage réseau sans le message “chemin UNC non pris en charge”?

J’essaie d’exécuter un fichier de commandes à partir d’un partage réseau, mais je continue à recevoir le message suivant: “Le chemin d’access UNC n’est pas pris en charge. Par défaut, le répertoire Windows.” Le fichier de commandes se trouve sur \\Server\Soft\WPX5\install.bat . Alors que vous êtes connecté en tant qu’administrateur, à partir de mon bureau Windows 7, je navigue vers \\Server\Soft\WP15\ et double-cliquez sur install.bat, lorsque le chemin d’access UNC n’est pas pris en charge. message. J’ai trouvé des suggestions en ligne indiquant que le lecteur de cartographie ne fonctionnerait pas, mais l’utilisation d’un lien symbolique résoudrait ce problème, mais le lien symbolique ne fonctionnait pas pour moi. Ci-dessous se trouve le contenu de mon fichier de commandes, je vous serais reconnaissant de toute aide qui pourrait m’aider à accomplir ce que j’essaie de faire. Fondamentalement, je veux pouvoir exécuter le fichier de commandes à partir de \\Server\Soft\WP15\install.bat .

Contenu du fichier batch

 mklink /d %userprofile%\Desktop\WP15 \\server\soft\WP15 \\server\soft\WP15\setup.exe robocopy.exe "\\server\soft\WP15\Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates" Regedit.exe /s \\server\soft\WPX5\Custom\Migrate.reg 

Comment puis-je supprimer le lien symbolique une fois l’installation terminée?

PUSHD et POPD devraient vous aider dans votre cas.

 @echo off :: Create a temporary drive letter mapped to your UNC root location :: and effectively CD to that location pushd \\server\soft :: Do your work WP15\setup.exe robocopy.exe "WP15\Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates" Regedit.exe /s WPX5\Custom\Migrate.reg :: Remove the temporary drive letter and return to your original location popd 

Tapez PUSHD /? à partir de la ligne de commande pour plus d’informations.

Il existe un paramètre de registre pour éviter ce contrôle de sécurité (utilisez-le à vos risques, cependant):

Sous le chemin du registre

HKEY_CURRENT_USER
\Logiciel
\ Microsoft
\ Processeur de commandes

Ajoutez la valeur DisableUNCCheck REG_DWORD et définissez la valeur sur 0 x 1 (Hex).

Fondamentalement, vous ne pouvez pas l’exécuter à partir d’un chemin UNC sans voir ce message.

Ce que je fais habituellement, c’est de mettre un CLS en haut du script pour ne pas avoir à voir ce message. Ensuite, spécifiez le chemin d’access complet aux fichiers du partage réseau que vous devez utiliser.

Je pense que cls est la meilleure réponse. Il cache le message UNC avant que quiconque puisse le voir. Je l’ai combiné avec un @pushd %~dp0 juste après, de sorte qu’il semblerait ouvrir le script et cartographier l’emplacement en une seule étape, empêchant ainsi d’autres problèmes UNC.

 cls @pushd %~dp0 ::::::::::::::::::: :: your script code here ::::::::::::::::::: @popd 

Remarques:

pushd changera votre répertoire de travail à l’emplacement des scripts dans le nouveau lecteur mappé.

popd à la fin, pour nettoyer le lecteur mappé.

Je devais pouvoir naviguer dans Windows Explorer à travers le partage du serveur, puis double-cliquer sur lancer le fichier de commandes. @dbenham m’a conduit à une solution plus simple pour mon scénario (sans les soucis popd ):

 :: Capture UNC or mapped-drive path script was launched from set NetPath=%~dp0 :: Assumes that setup.exe is in the same UNC path %NetPath%setup.exe :: Note that NetPath has a trailing backslash ("\") robocopy.exe "%NetPath%Custom" /copyall "C:\Program Files (x86)\WP\Custom Templates" Regedit.exe /s %NetPath%..\WPX5\Custom\Migrate.reg :: I am not sure if WPX5 was typo, so use ".." for parent directory set NetPath= pause 

Au lieu de lancer le lot directement depuis l’explorateur – créez un raccourci vers le lot et définissez le répertoire de démarrage dans les propriétés du raccourci sur un chemin local tel que% TEMP% ou quelque chose.

Pour supprimer le lien symbolique, utilisez la commande rmdir.

J’ai rencontré le même problème récemment en travaillant avec un fichier de commandes sur un lecteur de partage réseau dans Windows 7.

Une autre façon de travailler pour moi consistait à mapper le serveur sur un lecteur via Windows Explorer: Outils -> Connecter un lecteur réseau. Donnez-lui une lettre de lecteur et un chemin d’access à \ yourserver. Étant donné que je travaille souvent avec le partage réseau, le mappage le rend plus pratique, et il a résolu l’erreur “chemin UNC non pris en charge”.

Ma situation est juste un peu différente. J’exécute un fichier de commandes au démarrage pour dissortingbuer la dernière version des applications métier internes.

Dans cette situation, j’utilise la clé de registre Windows avec la chaîne suivante

 cmd /c copy \\serverName\SharedFolder\startup7.bat %USERPROFILE% & %USERPROFILE%\startup7.bat 

Cela exécute deux commandes au démarrage dans le bon ordre. Copiez d’abord le fichier de commandes localement dans un répertoire autorisé par l’utilisateur. Ensuite, exécutez le même fichier de commandes. Je peux créer un répertoire local c: \ InternalApps et copier tous les fichiers du réseau.

C’est probablement trop tard pour résoudre la question de l’affiche originale, mais cela peut aider quelqu’un d’autre.