Как запустить пакетный файл из сетевого ресурса без сообщения "UNC-путь не поддерживается"?

Я пытаюсь запустить пакетный файл из общего сетевого ресурса, но я продолжаю получать следующее сообщение: "UNC-путь не поддерживается. По умолчанию в каталоге Windows". Пакетный файл находится на \\Server\Soft\WPX5\install.bat. При входе в систему как администратор, с моего рабочего стола Windows 7, я перехожу к \\Server\Soft\WP15\ и дважды щелкните по install.bat, что, когда я получаю "UNC-путь, не поддерживается". сообщение. Я нашел несколько предложений в Интернете, в которых говорится, что отображение диска не будет работать, но использование символической ссылки разрешит эту проблему, но символическая ссылка не работает для меня. Ниже представлен мой пакетный файл, я был бы признателен за любую помощь, которая может помочь мне выполнить то, что я пытаюсь сделать. В принципе, я хочу иметь возможность запускать командный файл из \\Server\Soft\WP15\install.bat.

Содержимое пакетного файла

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

Также, как удалить символическую ссылку после завершения установки?

Ответ 1

PUSHD и POPD должны помочь в вашем случае.

@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

Введите PUSHD /? из командной строки для получения дополнительной информации.

Ответ 2

Там есть параметр реестра, чтобы избежать проверки безопасности (используйте его на свой страх и риск):

Под путем реестра

HKEY_CURRENT_USER
\Программного обеспечения
\Microsoft
\Командный процессор

добавьте значение DisableUNCCheck REG_DWORD и установите значение 0 x 1 (шестнадцатеричное).

Примечание. В Windows 10 версии 1803 настройка, по-видимому, находится в папке HKLM: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

Ответ 3

Я чувствую, что cls - лучший ответ. Он скрывает сообщение UNC, прежде чем кто-нибудь сможет его увидеть. Я объединил его с @pushd %~dp0 сразу после того, как это показалось бы как открытие script и отображение местоположения за один шаг, тем самым предотвращая дальнейшие проблемы с UNC.

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

Примечания:

pushd изменит ваш рабочий каталог на расположение сценариев в новом сопоставленном диске.

popd в конце, чтобы очистить отображенный диск.

Ответ 4

В принципе, вы не можете запустить его с UNC-пути, не видя этого сообщения.

То, что я обычно делаю, просто положил CLS в начало script, поэтому мне не нужно видеть это сообщение. Затем укажите полный путь к файлам общего сетевого ресурса, которые вам нужно использовать.

Ответ 5

Мне нужно было просто пропустить Проводник Windows через общий ресурс сервера, а затем дважды щелкнуть запуск пакетного файла. @dbenham привел меня к более легкому решению для моего сценария (без забот 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

Ответ 6

Вместо запуска партии непосредственно из проводника - создайте ярлык для пакета и установите стартовый каталог в свойствах ярлыка на локальный путь, например% TEMP% или что-то в этом роде.

Чтобы удалить символическую ссылку, используйте команду rmdir.

Ответ 7

Я столкнулся с тем же вопросом, который недавно работал с пакетным файлом на сетевом диске общего доступа в Windows 7.

Другим способом, который работал у меня, было сопоставление сервера с диском через проводник Windows: Инструменты → Сетевой сетевой адаптер. Дайте ему букву диска и путь к папке \yourserver. Поскольку я работаю с сетевым ресурсом, часто его сопоставление делает его более удобным и устраняет ошибку "UNC-путь не поддерживается".

Ответ 8

Моя ситуация немного отличается. Я запускаю командный файл при запуске, чтобы распространять последнюю версию внутренних бизнес-приложений.

В этой ситуации я использую ключ запуска реестра Windows со следующей строкой

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

В правильной последовательности выполняется две команды при запуске. Первое копирование командного файла локально в каталог, на который у пользователя есть разрешение. Затем выполняется тот же командный файл. Я могу создать локальный каталог c:\InternalApps и скопировать все файлы из сети.

Возможно, слишком поздно решить исходный вопрос о посте, но это может помочь кому-то другому.

Ответ 9

Это RegKey, который я использовал:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
"DisableUNCCheck"=dword:00000001

Ответ 10

Моя версия env windows10 2019 lts, и я добавляю эти две данные binray, исправляю эту ошибку

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor DisableUNCCheck значение 1 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Command Processor  Значение DisableUNCCheck 1