[windows] “UNC 경로가 지원되지 않습니다”라는 메시지없이 네트워크 공유에서 배치 파일을 실행하는 방법은 무엇입니까?

네트워크 공유에서 배치 파일을 실행하려고하는데 “UNC 경로가 지원되지 않습니다. 기본값은 Windows 디렉토리입니다.”라는 메시지가 계속 표시됩니다. 배치 파일은에 있습니다 \\Server\Soft\WPX5\install.bat. 관리자로 로그인 한 상태에서 Windows 7 데스크탑 \\Server\Soft\WP15\에서 install.bat 를 찾아 두 번 클릭하면 “UNC 경로가 지원되지 않습니다.”라는 메시지가 표시됩니다. 메시지. 매핑 드라이브가 작동하지 않는다는 온라인 제안을 찾았지만 심볼릭 링크를 사용하면이 문제가 해결되지만 심볼릭 링크가 작동하지 않았습니다. 아래는 내 배치 파일 콘텐츠입니다. 내가하려는 작업을 수행하는 데 도움이 될 수있는 도움을 주시면 감사하겠습니다. 기본적으로 .NET에서 배치 파일을 실행할 수 있기를 원합니다 \\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

또한 설치가 완료된 후 심볼릭 링크를 제거하려면 어떻게해야합니까?



답변

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 /?자세한 내용은 명령 줄에서 입력 하십시오.


답변

이 보안 검사를 방지하기 위한 레지스트리 설정 이 있습니다 (하지만 위험을 감수하고 사용).

레지스트리 경로 아래

   HKEY_CURRENT_USER
     \ Software
       \ Microsoft
         \ Command 프로세서

DisableUNCCheck REG_DWORD 값을 추가하고 값을 0 x 1 (Hex)로 설정합니다.

참고 :
Windows 10 버전 1803에서 설정은 HKLM : HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Command Processor 아래에있는 것 같습니다.


답변

cls가장 좋은 답 이라고 생각 합니다. 누구나 볼 수 있기 전에 UNC 메시지를 숨 깁니다. @pushd %~dp0스크립트를 열고 위치를 한 번에 매핑하는 것처럼 보이도록 바로 뒤에 결합 하여 추가 UNC 문제를 방지했습니다.

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

메모:

pushd 새 매핑 된 드라이브의 스크립트 위치로 작업 디렉토리를 변경합니다.

popd 마지막에 매핑 된 드라이브를 정리합니다.


답변

기본적으로 해당 메시지를 보지 않고 UNC 경로에서 실행할 수 없습니다.

내가 일반적으로하는 일은 CLS스크립트 맨 위에을 두는 것이므로 해당 메시지를 볼 필요가 없습니다. 그런 다음 사용해야하는 네트워크 공유에있는 파일의 전체 경로를 지정합니다.


답변

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


답변

탐색기에서 직접 배치를 시작하는 대신 배치에 대한 바로 가기를 만들고 바로 가기 속성에서 시작 디렉터리를 % TEMP % 등의 로컬 경로로 설정합니다.

심볼릭 링크를 삭제하려면 rmdir 명령을 사용하십시오.


답변

최근 Windows 7의 네트워크 공유 드라이브에서 배치 파일을 사용하여 동일한 문제가 발생했습니다.

나를 위해 일한 또 다른 방법은 Windows 탐색기를 통해 서버를 드라이브에 매핑하는 것입니다. 도구-> 네트워크 드라이브 매핑. \ yourserver에 대한 드라이브 문자와 폴더 경로를 지정하십시오. 네트워크 공유 작업을 자주하기 때문에 더 편리하게 사용할 수 있으며 “UNC 경로가 지원되지 않습니다.”오류가 해결되었습니다.