재부팅시 SUBST 매핑을 지속시키는 방법은 무엇입니까?


177

Windows (XP 이상)에는 SUBST가 생성하는 것과 같은 persitent 드라이브 매핑을 만드는 기본 제공 방법이 있습니까? 타사 도구 psubst를 찾았습니다 . 타사 도구없이 할 수있는 방법이 있습니까?


psubst레지스트리에 영향을주는 .bat 파일 일 뿐이 므로 가능합니다 . 자세한 내용은 아래 @davr의 답변을 참조하십시오.
Scott Stafford

허용 된 답변의 Wikipedia 기사에서주의 사항 : " Windows Vista부터는 삭제 된 파일이 즉시 영구적으로 삭제되고"휴지통 "으로 이동되지 않습니다. Windows Vista (예 : Windows XP) 이전의 파일은" 디스크가 삭제 될 때 휴지통으로 이동되었습니다. "
JMD

1
@ IvoFlipse, 그것은 일반적으로 좋은 가정이지만이 경우에는 잘못되었습니다. '제 3 자 도구'는 150 행 배치 파일로, 레지스트리를 수정하고 subst까다로운 슬래시 규칙 을 준수하기 위해 입력을 정리하는 데 도움이되는 훌륭한 파일을 제공 하지만, 이는 단순한 래퍼 입니다. 프로그램없이 할 수 있으며 README psubst는 방법 을 설명합니다. 또는 아래 의 psubst README를 인용 한 davr의 답변을 참조하십시오 .
alexanderbird

휴지통 문제를 해결하는 답변을 추가했습니다
Tony Pulokas

답변:


154

Well Wikipedia는 다음과 같이 언급합니다 .

C:\>SUBST /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

따라서을 사용하여 경로를 드라이브 문자와 연결할 수 있습니다 subst. 영구 SUBST 명령 (psubst는) 소프트웨어는 이놈 편리 할 것 같다, 그들은 시작에서 실행 할 수있는 솔루션을 제공합니다 :

https://code.google.com/p/psubst/#Inconstancy

변하기 쉬움

그러나 시스템을 다시 시작하면 가상 디스크가 손상됩니다. 무엇을해야합니까? 시작 후 디스크를 만들 수 있습니다. 그러나 초기 시작 단계에서 디스크가 필요한 경우 어떻게해야합니까? 예를 들어 서비스를 실행 하시겠습니까? 시스템 레지스트리에서 가상 디스크를 시작하는 시스템 기능이 있습니다.

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\\??\\C:\\Documents and Settings\\All Users\\Shared Documents"

확장자가있는 텍스트 파일을 작성 .REG하고 실행하면 충분 합니다. 다음에 시스템을 시작할 때 가상 디스크는 로그온시 존재합니다. 디스크 이름과 경로를 정의해야합니다. 경로의 각 백 슬래시는 두 배가됩니다.

Windows에서는 다음과 같이 레지스트리 편집기를 실행할 수 있습니다.

  1. 시작»달리기 ... (또는 Win+ R)
  2. 유형: regedit
  3. Windows Vista 이상에서 UAC가 팝업되면 "예"를 클릭하십시오 .

6
subst더 이상 사용하지 않아도 알아서 반갑습니다 . 그러나 내가했던 시절에는 단순히 시작 파일 폴더에 배치 파일을 저장하여 그 일을하는 데 사용했습니다.
Joey

2
대단해. (재부팅, FYI가 필요합니다.) 소스 트리는 특정 드라이브 문자에서 시작하여 PDB가 항상 서로 다른 컴퓨터에 정렬되도록해야합니다. 이 레지스트리 설정은 관리자 계정으로 Visual Studio를 (드물게) 실행 해야하는 경우 큰 성가심 인 runas와 함께 존재하지 않는 서브 디스크가있는 수년간의 성가심을 해결합니다.
Brian Reiter

3
Joey :이 솔루션은 Windows 7에서 작동하지 않는 것 같습니다. 관리자 권한으로 응용 프로그램을 실행하면 대체 드라이브가 해당 응용 프로그램에 표시되지 않습니다.
데이브 자비스

31
솔루션 주셔서 감사합니다. 참고로 RegEdit에 변수를 대화식으로 입력하면 백 슬래시를 두 배로 늘리지 마십시오. 즉, 따옴표없이 "Z :"라는 새 문자열 변수를 작성하고 단일 백 슬래시를 제외하고 값을 위에 표시된 문자열로 설정하십시오.
Crispy

3
@ Devil'sAdvocate \??는 NT 개체 관리자 네임 스페이스의 가상 디렉터리입니다. 먼저 로그온 세션 DOS 'devices'(실제로 DOS 장치는 일반적으로에 위치한 NT 장치에 대한 심볼릭 링크 임 \Device)와 \Global??DOS 장치를 확인합니다. WinObj의 로그온 세션 장치는에 \Sessions\0\DosDevices\[logon ID]있습니다. 로그온 세션 장치는 각 LSA 로그온 ID에 대해 세션 0 (서비스)에서 모두 추적됩니다. 데스크톱 세션과 관련이 없습니다. 그렇기 때문에 드라이브를 제한된 관리자로 매핑하면 관리자 권한이 없을 때 존재하지 않습니다. 다른 로그온입니다.
Eryk Sun

76

에 설치하면 HKEY_CURRENT_USER각 사용자마다 다른 설정이 가능 하다는 이점이 있습니다. 시스템 서비스가 장치에 의존하지 않는 한 사용자 공간 설정을 고수하는 것을 선호합니다.

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"F Drive"="subst F: D:\\mount\\db"
"G Drive"="subst G: D:\\mount\\log"

출처 : http://networkadminkb.com/KB/a446/how-to-use-drive-letters-mount-points-the-same-disk-drive.aspx


7
+1 하나의 reg 파일에서 여러 매핑을 수행하는 방법을 보여줍니다. :-)
megaflop

4
+1이 쉬워지고 왜 HKEY_CURRENT_USER 인지도 설명합니다. :)
CAD bloke

1
시작 폴더에 배치없이 자동으로 매우 우아한 방법을 보여주는 +1
dkellner

3
XP / Windows 2000 서버 이후로 명령 행에서이를 수행 할 수도 있습니다. reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "F Drive" /d "subst F: D:\x\db" NB \는 subst 명령의 마지막 문자 인 경우에만 이스케이프해야합니다 (예 : 대상이 루트 디렉토리 인 경우) "subst F: D:\\". 하나는 \ 다음에 ""를 이스케이프 처리하는 것으로 해석됩니다.
stevek_mcc

44

링크 한 페이지에 답변이 있습니다. 타사 도구가 필요하지 않으며 해당 페이지에 설명 된대로 간단한 레지스트리 항목을 사용하여 수행 할 수 있습니다.

다음 내용으로 'mapdrive.reg'라는 텍스트 파일을 만듭니다.

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\\??\\C:\\Documents and Settings\\All Users\\Shared Documents" 

그런 다음 타사 도구가 필요하지 않고 두 번 클릭하여 설정할 수 있습니다.


8
reg 키와 배치 파일의 장점은 다른 시작 명령이 실행되기 전에 서브 스트 드라이브를 설정한다는 것입니다. 그 중 일부는
서브 스트

6
@Ivo :) 나는 그것에게 미지의 건강한 두려움을 부르는 것
Isxek

9
regedit에서이 작업을 수행하는 경우 단일 백 슬래시를 사용해야합니다. 예 : \ ?? \ C : \ Some \ Directory
Droj

27

시작 서브 스트 스크립트에 대한 개선을 찾고 있었기 때문에 이것을 찾았습니다. 정상적으로 작동했지만 드라이브가 아직 매핑되지 않았기 때문에 시작시 폴더가 충돌 한 후 실행되는 경우가있었습니다.

먼저 레지스트리를 편집했지만 작동하지 못했습니다. 그러나 subst를 사용하지는 않지만 "재부팅에서 SUBST 매핑을 지속시키는 방법"이라는 질문에 대한 답을 얻지 못했습니다. subst를 사용하지 마십시오 ... (적절한 'computerName'및 'pathName'을 삽입하십시오) :

순 사용 u : "\\ computerName \ c $ \ pathName"/ persistent : yes

로컬 드라이브 매핑에 대한 논의 에서 Hank Arnold의 제안에서 이것을 채택했습니다 . \\ myComputerName \ c가 작동한다고 생각했지만 $를 적용하는 것을 몰랐습니다.

"net use"명령을 시도하기 전에

\\ 컴퓨터 이름 \ c $
'computerName'이 올바른지 확인하십시오.


2
두 가지 문제가 있지만 탁월한 솔루션 : 1) 로컬 파일 시스템에 표시되지 않음, 2) 권한 ...
ashes999

6
당신이 \\localhost\c$\path\to\thing그것을 사용 하는 경우 컴퓨터 (또는 컴퓨터 이름을 변경하는 업그레이드)에서 휴대용입니다. Win7 +에서 매핑 된 드라이브를 사용하는 단점은 로컬과 다른 보안 정책이 네트워크 드라이브에 적용되며 일부 프로그램은 매핑 된 드라이브의 실행을 거부한다는 것입니다.
matt wilkie

1
파일 시스템에 표시되고 로컬 파일 시스템에 표시됩니다. 일부 드라이브가 제거 가능한 드라이브로 표시되는 것처럼 네트워크 드라이브로 표시됩니다. 그런 드라이브가 로컬 파일 시스템의 일부가 아니거나 보이지 않는 것은 아닙니다. 로컬 파일 시스템에서 네트워크 / 이동식 드라이브가됩니다.
user165568

1
테스트에서 (로컬로) 마운트 된 네트워크 드라이브를 사용하는 성능 문제 (2 년 전)도 파일 시스템 (또는 서브 시스템 등)을 직접 사용하는 것보다 느립니다. 실제 파일을 다른 서버로 옮기는 것과는 달리 작은 파일이나 가끔씩 사용하는 경우에는 큰 차이가 없지만 중요합니다.
HerbM

8

원하는 모든 SUBST를 수행하는 배치 파일을 시작 폴더에 놓으십시오.


5

원래 PSubst에는 몇 가지 제한 사항이 있으며 저자가 결론을 내린 것 같습니다. 필요에 따라 새 버전을 코딩하여 일부 문제를 해결하고 기능과 유연성을 추가해야했습니다.

PSubst 버전 3 배치 파일은 여기를 확인하십시오.

https://github.com/cyberponk/psubst

Windows 7, Windows 8, Windows 10, Windows Server 2012와 호환

참고 : 이 작품은 원래 저자를 칭찬 할 의도가 없으며 다음과 같이 실제 필요성 때문에 생겨났습니다.

  • 뉴 토크 관리자로서 나는 네트워크 드라이브를 SUBST´ing하고 다른 네트워크 사용자와 함께 일할 필요가 있습니다.

  • 모든 사람이 Windows 전문가는 아니기 때문에 웹을 통해 읽은 의견에 따라 오류 처리 기능이있는 자동 관리자 권한 상승이 도움이 될 것으로 생각했습니다.

  • 어떤 사람들은 논쟁 순서에 어려움을 겪었 기 때문에, 스크립트가 어떤 순서로든 논쟁을 다루는 것이 가장 좋을 것이라고 생각했습니다.

추가 된 모든 기능을 기억할 수는 없지만 모든 포함은 순전히 필요에 의해 이루어졌습니다. 다른 사람들이 내가 겪고있는 어려움을 겪지 않도록 코드를 공유하고 있습니다. 이를 통해 나누고 돕는 것 외에 다른 의도는 없습니다.


"A"라고 말하면 "B"라고 말하십시오. 원래의 psubst에 많은 문제가 있다는 것을 알았습니다. 한편, psubst는 버리지 않습니다. 개발의 한계에 도달했습니다. 독창적 인 도구는 매우 단순한 철학을 따릅니다. 무언가를하고 잘합니다. UAC 처리 및 추가 작업을위한 추가 vbs 코드 생성과 같은 추가 기능이 오버로드되지 않습니다. 코드를 단순화하고 가독성을 향상시키기위한 일부 변경 사항은 원래 코드를 통해 수행 할 수 있습니다.
jsxt

편집했습니다. 검토하십시오. UAC 및 VBS는 자동 관리자 권한 상승을위한 것입니다. PSUBST를 사용하여 몇 가지 문제가 발생한 후 모든 변경 사항을보다 간단하고 쉽게 사용할 수 있도록하기 위해 "개발 제한"의견에 동의하지 않습니다. 나는 원저자를 비판하려는 의도가 없으므로 문제를 열거하지 않고 대신 해결책을 만들었습니다. 실제로 원래 github 브랜치에 에디션을 추가하도록 제안했지만 거부되었으므로 자체 브랜치를 만들어야했습니다.
cyberponk

빠르고 자세한 의견을 보내 주셔서 감사합니다. 아마도 당신의 개발을 면밀히 살펴 봐야 할 것입니다.
jsxt

내 모자는 당신에게 떨어져 있습니다; 나는 배치 스크립팅 트렌치에서 시간을 보냈고 얼마나 고통 스럽습니다. 그 코드는 꽤 좋아 보인다.
SilverbackNet

2

매핑 된 드라이브에서 삭제 된 파일이 휴지통으로 이동하는 대신 영구적으로 삭제되므로 davr의 대답을 확장하고 있습니다. 이 REG 파일은 이 TechNet 기사에서 컴파일 된 정보를 기반으로하며 , 휴지통을 활성화하는 방법에 대해 설명합니다. 이 예에서는 가상 Q 드라이브를 "OneDrive-Test"폴더에 매핑하고 Q 드라이브에서 휴지통을 활성화합니다. 상황에 맞게 경로와 이름을 변경하십시오.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Q:"="\\??\\C:\\Users\\Tony\\OneDrive - Test"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000

이와 같이 매핑 된 드라이브가 하나 뿐인 경우 GUID {9147E464-33A6-48E2-A3C9-361EFD417DEF}를 사용하여 벗어날 수 있습니다. 매핑 된 드라이브가 여러 개인 경우 각 드라이브는 선호하는 GUID 생성기의 GUID와 일치해야합니다.


내 관찰 중 일부 : 아래의 값을 설정 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{GUID}하고 재부팅하면 HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{GUID}Windows 에서 해당 값 이 자동 생성됩니다. Wow6432Node열쇠 밑에는 아무것도 나타나지 않았지만 휴지통 은 열쇠없이 작동했습니다. 이것은 Windows 7 시스템에 있었으므로 최신 버전에서 다르게 작동하는지 확실하지 않습니다.
헤로 타

1
약간의 데이터를 추가하기 위해 64 비트 Win 10 시스템이 있으며 32 비트 응용 프로그램 (FastStone Image Viewer)에서 삭제할 때 발생하는 상황을 테스트했는데 32에서 휴지통이 작동하지 않는 것으로 나타났습니다. Wow6432Node 키가없는 비트 앱.
Tony Pulokas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.