명령 행에서 맵핑 된 네트워크 드라이브를 다시 연결할 수 있습니까?


32

매일 매일 Windows 명령 프롬프트에서 매핑되었지만 연결이 끊어진 네트워크 드라이브에 액세스해야합니다. 매핑 해제 및 다시 매핑하지 않고이 드라이브를 다시 연결하는 명령을 아직 찾지 못했습니다 (이 컴퓨터를 소유하지 않기 때문에 암호 추측 게임으로 이어짐). 또한 매일 밤마다 드라이브 연결이 끊어지면 드라이브가 다시 연결되도록 스크립트를 작성하고 싶습니다.

현재 가장 빠른 솔루션은 다음과 같습니다.

  1. " start."를 입력 하여 탐색기를 열고
  2. Alt- D주소 표시 줄에 초점을 맞추려면
  3. 원하는 드라이브 문자를 입력하고 Enter 키를 누른 다음 드라이브 내용이 표시 될 때까지 기다립니다.
  4. 마지막으로 탐색기를 닫고 명령 프롬프트로 돌아갑니다.

약간의 불편 함을 알고 있지만 GUI를 통해 무언가를하는 것이 끔찍한 느린 VNC 또는 PCAnywhere 연결을 통해이 작업을 수행하는 경우가 많으므로 더 나은 솔루션이 있는지 궁금합니다.


1
`dir h : \`는 어떻게됩니까?
wfaulk

3
"start. <enter>"를 입력하는 대신 win-E를 수행하고 5 개의 키 입력을 저장할 수 있습니다 ;-)
fretje

1
매핑 된 드라이브 대신 \\ server \ share 경로를 사용하여 "해결"했습니다. 필요한 경우 파일을 복사 할 수 있습니다. (저의 문제였습니다)
Peterdk

답변:


12

어쩌면 시도 pushd \\server\share?


2
이것이 내가 필요한 것인지 확실하지 않습니다. 푸시는 임시 드라이브 문자를 만드는 것처럼 보입니다. 이미 드라이브 문자가 매핑되어 있지만 공유 연결이 끊어졌습니다 (탐색기에 빨간색 X가 있고 "Disconnected Network Drive"라고 표시되어 있음). 어쩌면 내가 틀렸을 수도 있습니다.
Stephen Jennings

예, 그런 식으로 액세스하면 드라이브가 다시 연결될 수 있습니다. popd드라이브 문자를 제거하는 데 사용할 수 있습니다 .
wfaulk

다음에이 문제가 발생하면 시도해 보겠습니다. 장치가 사용 중이라고 말하지 못하거나 잘못된 드라이브 문자를 공유에 연결합니다.
Stephen Jennings

2
나는 이것을 시도했고 실제로 작동했다. 먼저 공유로 푸시 한 다음 추가 드라이브 문자를 매핑 해제하기 위해 튀어 나와서 원하는 매핑 된 드라이브가 다시 연결되어 있음을 알았습니다. 이것은 명백한 공세이며, 며칠 내에 더 짧은 답변을 얻지 못하면 이것이 받아 들여질 것입니다.
Stephen Jennings

1
아직 다운 보팅 기능이 없지만이 답변은 아무런 효과가 없습니다. 어떤 게시물을 보려면 아래의 여러 게시물을 참조하십시오. 나는 또한 의견을 남겼습니다.
prl77

8

회사 네트워크 드라이브에 연결하는 VPN 프로그램을 실행하려면 Windows 7을 시작해야합니다. 따라서 내 네트워크 드라이브는 자동으로 다시 연결되지 않으며 Windows 탐색기에서 열면 다시 연결됩니다.

VPN을 시작하고 네트워크 드라이브를 다시 연결하며 항상 사용하는 일부 응용 프로그램을 시작하기 위해 작은 배치 파일을 만들었습니다.

내 배치 파일에는 다음이 있습니다.

REM Connect VPN here...

REM Opens an Explorer window looking at T: forcing a reconnect
Start /min explorer t:\

timeout 3 /nobreak

REM Kill all Explorer windows beginning with "T_drive" in the title
Taskkill /fi "windowtitle eq T_drive*"

REM Finish starting up here...

exit

Taskkill /fi "windowtitle eq"명령은 대소 문자를 구분합니다!


고마워요, 이것은이 전체 스레드에 대한 유일한 대답이었습니다. 물론 나는 그것을 찬성했지만, 당신의 위의 게시물에 대해서는 아직 하향 투표 기능이 없습니다.
prl77

Btw, 적어도 최신 패치가있는 Win 7 x64에서는 대소 문자를 구분하지 않는 "taskkill"을 찾지 못했습니다.
prl77

참고 : 위의 태스크 킬 매개 변수가 작동하지 않으면 TASKLIST / FI "IMAGENAME eq explorer.exe"/ V를 사용하여 올바른 창 제목을 확인하십시오. TASKKILL에 대한 필자의 필터 문자열은 "windowtitle eq c $ *"
Luke

귀하의 의견에 감사합니다. 정말 도움이되었습니다
Pawel

7

다음 명령을 사용하여 배치 파일 (refreshletters.cmd)을 만듭니다.

( 이것은 배치 파일 내에서만 작동합니다 )

콘솔 창 (명령 줄)에서 'Disconnected'및 'Unavailable'드라이버 문자를 새로 고치기 위해 Win7 및 XP에서 테스트되었습니다.

@echo off
net use |FIND ":" > %temp%\used.txt
FOR /F " tokens=1,2,3 delims= " %%i in (%temp%\used.txt) do (

  if %%i EQU Unavailable  (
    net use %%j %%k
    echo Activated %%j
   ) ELSE (
     if %%i EQU Disconnected (
       pushd .
       cd /d %%j
       dir . %>nul
       if NOT exist %%j\. (
          net use %%j /del /y
          net use %%j %%k
          echo Remapped %%j
          ) else (
             echo Fixed-up %%j
            )
       popd
       ) ELSE (
          echo Checked %%j
          )
     )
 )

OP의 전문 지식 수준을 모르는 경우 답변을 넓히는 것이 좋습니다.
Tog

net useWin7에서 사용할 수없는 매핑 된 드라이브에서 나를 위해 일합니다. ty
Mat M

1
아직 다운 보팅 기능이 없지만이 답변은 아무런 효과가 없습니다. Claus Melander가 작성한 아래 게시물을 참조하십시오. 나는 또한 의견을 남겼습니다.
prl77

1
그것은 작동하지만 (win7 x64로 테스트 됨) net use을 스캔 할 때 언어 의존 출력에 의존 합니다 Unavailable. 그러나 독일어 win7을 사용 Nicht verfgb하려면 솔루션을 해당 언어로 수정해야합니다.
jeb

이것은 네트워크 경로에 공간이있는 하나의 공유를 제외하고는 나를 위해 일했습니다 ... 어쨌든, 배치 파일에 하드 코딩 된 "net use X : \\ share \ path"줄을 작성했습니다. 드라이브 매핑을 변경하면 최신 상태로 유지됩니다. 이것은 드라이브를 다시 연결하기 위해 탐색기 창을 열 필요가 없기 때문에 가장 좋은 해결책입니다.
Aaron

6

이것은 아마도 어리석은 질문이지만 "연결이 끊어진"드라이브가 H :라고 가정하면 드라이브로 직접 변경해 보셨습니까?

XPSP3에서 저에게 효과적입니다.

C:\>net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
Disconnected H:        \\xxxxxx\wfaulk           Microsoft Windows Network
OK                     \\xxxxxxx\business        Microsoft Windows Network
The command completed successfully.


C:\>h:

H:\>net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
OK           H:        \\xxxxxx\wfaulk           Microsoft Windows Network
OK                     \\xxxxxxx\business        Microsoft Windows Network
The command completed successfully.

2
명령 프롬프트를 사용하면 현재 연결이 끊어진 네트워크 드라이브로 전환 할 수 없습니다. 적어도 이것을 사용하는 수백 대의 컴퓨터 (WinNT, Win2k, WinXP, WinXP Embedded)에는 ​​없습니다.
Stephen Jennings

1
기묘한. 맹세합니다.
wfaulk

그것은 나를 위해 작동합니다!
Snark

나는 때때로이 작품을 보았다는 것을 인정하지만, 대부분 그렇지 않다. 저장된 자격 증명이 있는지 여부에 관계없이 어떤 방법으로 결정되는지 알 수 없습니다.
Stephen Jennings

1
아, 그게 다야 도메인 자격 증명을 사용하여 자동으로 인증하고 있습니다.
wfaulk 2009

4

나는 당신이 "net use"가 당신을 위해 효과가 없다고 말한 것을 알고있다. 그러나 여기 당신이 시도 할 수있는 것이있다.

net use / DELETE 옵션을 사용하여 배치 파일을 실행하여 기존 / 지속적 연결을 제거한 다음 / SAVECRED 옵션과 함께 net use를 사용하여 마지막으로 성공적인 로그온시 사용한 암호를 다시 사용할 수 있습니다. 이것이 귀하의 문제를 해결할지 확실하지 않지만 조사 할 가치가 있습니다.


이것은 내가 필요한 것이 아니지만 이것은 분명히 알아야 할 유용한 것입니다. 이것은 내가 가진 또 다른 문제를 해결합니다.
Stephen Jennings

2

여러 연결에 동일한 문제가 있으며 간헐적입니다. 컴퓨터를 재부팅 할 때 연결이 "좋은"상태가되고 때로는 연결되지 않는 경우가 있습니다. 회사 LAN을 사용하고 있기 때문에 암호 문제가 없지만 여전히 다른 문제가 있습니다.

ex.bat라는 배치 파일을 만들고 경로에 넣은 \ util 디렉토리에 다른 많은 것들과 함께 저장했습니다. "ex h :"를 입력하면 Windows 탐색기가 실행되고 h : 드라이브로 직접 이동하도록 설정됩니다. 배치 파일은 다음과 같습니다.

start explorer /e,/select,%1

키 입력 횟수가 훨씬 적습니다. 또는 처음에 작동하지 않으면 Enter 키를 눌러 h : 루트 폴더를 열고 내용을 표시하십시오. 또는 하위 폴더 "sub"가 존재하는 곳에 "ex h : \ sub"를 입력하십시오.

이 문제는 Windows XP 보안 패치 중 하나로 인해 최근에 훨씬 더 나빠진 것 같습니다.

또 다른 시도는 서버 측입니다. Windows 서버에서 레지스트리 키를 수정하면 제한 시간에 서버의 연결이 끊어지지 않습니다. 나는 거의 모든 서버 에서이 작업을 수행합니다. 파일은 다음과 같습니다

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]
"autodisconnect"=dword:ffffffff

다른 사용자로 실행되는 프로세스에서 start explorer두 사용자 모두 "별도의 프로세스에서 폴더 창 실행"설정을 가지고있는 경우에만 작동합니다.
ivan_pozdeev

1

비슷한 문제가 발생하여 명령 줄에서 간단한 "dir x :"(X :는 매핑되었지만 연결이 끊어진 드라이브 임)로 다시 연결할 수 있다는 것을 알았습니다. 이것은 Server 2003 시스템에서 XP 및 Win7의 매핑 된 드라이브까지였습니다. 컴퓨터.

다음 두 줄로 배치 파일 wake_network_drives.bat를 만들었습니다.

    dir x:
    dir z:

드라이브가 때때로 연결이 끊어진 것으로 표시되어 실패한 백업 프로그램 전에 밤새 실행되도록 예약 된 작업을 설정하십시오.


작동합니다. dir명령으로 오류가 발생 하더라도 연결이 끊어진 네트워크 드라이브를 깨우는 경향이 있습니다. 이것이 그들 모두의 가장 좋은 대답입니다.
Elliot Cameron

0

그냥 입력하십시오 :

NET USE H: \\server\share

(여기서 H :는 드라이브 문자입니다)

'NET /?를 입력하십시오. 이 명령이 제공하는 모든 옵션을 보려면 USE '를 누르십시오.


작동하지 않습니다. 드라이브 문자가 이미 매핑되었으며 연결이 끊어졌습니다 (일반적으로 다른 컴퓨터가 재부팅 됨). 이를 실행하면 장치가 이미 사용 중이라는 불만이 표시됩니다.
Stephen Jennings

예, 지금 막 테스트 한 결과 "로컬 장치 이름이 이미 사용 중입니다."
Stephen Jennings

1
그것은 나를 위해 작동하지만 ... 나는 Windows 7에 있고 실제로 드라이브 자체적으로 다시 연결됩니다 ... NET USE H : 경로없이 간단한 연결을 다시 시도해야합니다. XP에서 어떻게 사용했는지 잊어 버렸습니다.
Zoran

0

이러한 비밀번호를 일반 텍스트로 일괄 처리하지 않으려면 자격 증명을 포함하여 삭제 및 다시 매핑을 스크립팅 할 수 있습니다.

net use H: /delete
net use H: \\server\share /user:domain\user password /persistent:yes

공유를 삭제하지 않아야한다는 요구 사항을 충족시키지 못하지만 암호를 기억 해야하는 문제의 근본을 해결합니다.


IT는 프로가 AS, 내가 하고 자신을 위해 내 사용자를 위해 모두 반대했다.
ivan_pozdeev

0

TL; DR 요약 : 사용 net useif exist

야간 백업 스크립트를 만드는 동안 관련 문제가 발생했습니다. 컴퓨터가 켜져 있는지 (ping 사용) 확인하고, 필요한 경우 마법 패킷을 보내서 ( MC-WOL 사용 ), Windows가 부팅 될 때까지 기다린 다음 SMB 공유에 연결하고 기다립니다. 존재합니다.

여기에 다른 답변이 훌륭하지만 매핑 된 드라이브 문자가 나타나거나 존재하지 않거나 사용자가 작업중 인 항목의 연결을 끊거나 탐색기 창이 깜박이지 않게하고 싶지 않았습니다. 즉 목표는 사용자의 방해전혀없는 것 입니다.

다음은 도움이 될만한 코드입니다.

set TARGET_IP=192.168.1.3
set TARGET_PATH=\\%TARGET_IP%\d$\backups
set ATTEMPTS=0

:LOOP

REM Give up eventually
if %ATTEMPTS% GEQ 200 goto NOJOY

REM Wait for IP connectivity to host, and/or burn up a couple seconds before retry
ping -n 1 -w 2000 %TARGET_IP% | find "TTL" > nul
if errorlevel 1 set /a ATTEMPTS+=1 & goto LOOP

REM See if we're already connected, and try to give it a kick
if exist %TARGET_PATH% goto CONNECTED

REM Try to reconnect
net use %TARGET_PATH% > nul
if errorlevel 1 set /a ATTEMPTS+=1 & goto LOOP

:CONNECTED
echo Connected
exit /b

:NOJOY
echo Couldn't connect

원하는 경우 위의 IP 주소를 호스트 이름 (예 :)으로 바꿀 수 있습니다 server1.

net use기존 연결이없는 경우 필요합니다. 나는 혼자서 공유를 "깨우는"것이 충분하지 않은 것처럼 보이는 일부 코너 사례에 부딪쳤다. 나는 발견 if exists지시어는 다른 답변 (같은에서 언급 한 대안과 유사한 효과를 pushd, dir, Explorer, 등),하지만 가벼운 무게 접근 방식을 보였다.


0

StanZ의 답변이 저에게 도움이되었지만 도메인의 사용자가 다른 드라이브 매핑을 얻을 때 상태가 OK 인 매핑 된 드라이브를 프로그래밍 방식으로 결정할 수 있어야했습니다. 여기서는 net use실제 코드 전후에 실행되는 독립형 버전으로 실행 되도록 코드를 작성 했으므로 결과를 볼 수 있지만 FOR원하는 결과를 얻으려면 코드에 한 명령문 (3 줄) 만 복사하면 됩니다.

@ECHO OFF
::  
:: revision of answer from StanZ on superuser.com at the following url  
:: https://superuser.com/questions/52595/can-a-mapped-network-drive-be-reconnected-from-the-command-line/367910#367910  
:: https://superuser.com/a/367910  
:: which resulted in my  
::  
:: DriveStatusOK.bat  
:: iCharlieC  
::  
SETLOCAL ENABLEEXTENSIONS  
::  
:: you need only copy the one FOR statement (three lines)  
::   to use in your own code  
::   to force status of mapped network drives to OK  
::  
:: "tokens=1-2 delims=: " is used in the for statement  
:: to output only the drive letter from the output of...  
:: net use  
:: is piped to the first findstr which outputs only lines with drive letters  
::   then piped to another findstr to eliminate drives with a status of OK  
::   then piped to another findstr to get lines that start with a status  
::     -in other words, those lines that the first character is a letter-  
::     -this due to the fact that in our domain we have a drive  
::      that is mapped to a letter, but never has a status.  
::      I do not know the reason for this,  
::      but adding that last findstr prevents me from getting an error  
::      from trying to execute a dir on a non-existant drive letter.-  
::   then dir is executed on each drive letter (after appending ":\" to the letter)  
::      and the output redirected to NUL  
::  
:: run net use before as a visual here  
net use  
::  
FOR /F "tokens=1-2 delims=: " %%i in (  
    'net use ^| findstr ":" ^| findstr /i /v "^OK" ^| findstr /i "^[A-Z]"'  
    ) do dir "%%j:" > NUL  
::  
:: run net use after "waking" drive(s)  
net use  
::  
ENDLOCAL  

0

네트워크 공유가 종종 다른 이유로 창에 의해 다시 연결되거나 연결되지 않기 때문에 오래된 질문이지만 2017 및 Windows 10에서 여전히 관련이 있습니다. 이 문제와 실용적이고 완전한 실제 솔루션이 없음을 기반으로 스케줄러 작업과 VBS가 포함 된 Github 프로젝트를 만들었습니다.

스크립트는 전체 구성이 가능하며 실제 사용자의 요구에 따라 설정할 수 있습니다.

Github 프로젝트의 경로

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.