107 votes

Comment exécuter un fichier batch à partir d'un partage réseau sans que le message "UNC path are not supported" ne s'affiche ?

J'essaie d'exécuter un fichier batch à partir d'un partage de réseau, mais j'obtiens toujours le message suivant : "Les chemins UNC ne sont pas pris en charge. Defaulting to Windows directory." Le fichier batch est situé sur \\Server\Soft\WPX5\install.bat . En étant connecté en tant qu'administrateur, depuis mon bureau Windows 7, je navigue vers \\Server\Soft\WP15\ et double-cliquer sur install.bat, c'est alors que j'obtiens le message "UNC path are not supported". J'ai trouvé quelques suggestions en ligne indiquant que le mappage de lecteur ne fonctionnera pas, mais que l'utilisation d'un lien symbolique résoudra ce problème, mais le lien symbolique n'a pas fonctionné pour moi. Voici le contenu de mon fichier batch, j'apprécierais toute assistance qui pourrait m'aider à accomplir ce que j'essaie de faire. En fait, je veux pouvoir exécuter le fichier batch à 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

Par ailleurs, comment supprimer le lien symbolique une fois l'installation terminée ?

153voto

dbenham Points 46458

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

Type PUSHD /? à partir de la ligne de commande pour plus d'informations.

42voto

Grallen Points 176

Je me sens cls est la meilleure réponse. Elle cache le message UNC avant que quiconque ne puisse le voir. Je l'ai combinée avec un @pushd %~dp0 juste après pour qu'il semble ouvrir le script et cartographier l'emplacement en une seule étape, évitant ainsi d'autres problèmes liés à l'UNC.

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

Notes :

pushd changera votre répertoire de travail pour l'emplacement scripts dans le nouveau lecteur mappé.

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

33voto

Vinzz Points 1850

Il y a un réglage du registre pour éviter ce contrôle de sécurité (à vos risques et périls) :

Sous le chemin du registre

HKEY_CURRENT_USER
     \Software
       \Microsoft
         \Command Processeur

ajouter la valeur DisableUNCCheck REG_DWORD et fixer la valeur à 0 x 1 (Hex).

Remarque : Sur Windows 10 version 1803, le paramètre semble être situé sous HKLM : HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Command Processeur

11voto

aphoria Points 8128

En fait, vous ne pouvez pas l'exécuter à partir d'un chemin d'accès UNC sans voir ce message.

Ce que je fais habituellement, c'est de mettre un CLS au début du script pour que je n'aie pas à voir ce message. Ensuite, indiquez le chemin d'accès complet aux fichiers du partage réseau que vous devez utiliser.

8voto

JayRO-GreyBeard Points 34

J'avais besoin de pouvoir parcourir le partage du serveur à l'aide de l'explorateur Windows, puis de double-cliquer pour lancer le fichier batch. @dbenham m'a orienté vers une solution plus simple pour mon scénario (sans le popd inquiétudes) :

:: 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X