답변:
명령 프롬프트 또는 시작 / 실행 유형을여십시오.
net use \\somecomputeronmynetwork\somelocation$ /delete
다음 명령을 사용하여 "기억 된"연결을 나열 할 수도 있습니다.
net use
C:\> net use * /d
가 ServerFault 에서 제안 했습니다 -매핑 된 모든 자격 증명을 삭제하십시오 . 독자가 아래로 스크롤하지 않는 경우에이 설명을 추가하십시오.
net use .../delete
(예,이 명령 후에도 로그인 / 로그 오프 할 수 있지만 "workstationservice"를 다시 시작하면 충분합니다). 서비스 이름 : LanmanWorkstation // 경로 : C : \ WINDOWS \ System32 \ svchost.exe -k NetworkService -p // sc stop lanmanworkstation
sc start lanmanworkstationg
(높은 권한으로)
net use /delete
LanmanWorkstation을 다시 시작하지 않고 와 연결을 삭제 한 후 dir \\the\deletedshare
공유 컨텐츠 표시가 중단 될 때까지 시간이 걸립니다 . 이번에 생성 된 이진 검색은 13 초입니다. 이 "대기 기간"은 해당 시간 동안 공유에 다시 액세스 할 때 확장되는 것 같습니다.
검색 창에서 시작 메뉴를 엽니 다.
manage passwords
Windows에 로그인 비밀번호가 없으면 작동하지 않으므로 비밀번호를 입력하십시오.
Windows는 "보안상의 이유"가 모호하기 때문에 서로 다른 자격 증명으로 동일한 서버에 동시에 로그온하지 못하도록합니다.
이 차단은 서버 측이 아닌 클라이언트 측에서 발생합니다.
서버 이름 대신 서버의 IP 주소를 사용하여이를 피할 수 있습니다. 개인적으로, 나는 명령 행에서 이것을한다 :
net use * \\myservername\mysharename /user:mydomain\theotheruser * /persistent:no
==> error - security reasons
net use * \\x.y.z.z'\mysharename /user:mydomain\theotheruser * /persistent:no
==> just fine
이렇게하면 다른 자격 증명으로 동일한 공유에 두 번 연결할 수도 있습니다. 사용자 컴퓨터에서 사용자 권한 문제를 디버깅하려고 할 때 매우 유용합니다. c $와 같이 관리자 권한으로 자신의 컴퓨터에 연결하기도합니다.
마우스 오른쪽 버튼으로 클릭하거나 공유를 제거합니다. net use x: /delete
그러나 이렇게해도 클라이언트의 서버 연결이 제거되지는 않습니다. 공유를 연결하지 않고도 탐색기에서 서버를 탐색하기 만하면 이름을 위장하지 않으면 다른 자격 증명을 사용하여 해당 서버에 로그온 할 수 없습니다.
Microsoft에 따르면 이것은 기능입니다.
폴더에 액세스하고 사용자가 캐시 된 (즉, 활성 상태 인) PC에 대한 연결을 제거하려면 다음 절차 (단계별)를 엄격하게 사용해야합니다.
2 기기의 모든 윈도우 탐색기를 닫습니다
3 명령 프롬프트를 엽니 다
4 명령을 실행
순 사용 * / del
***이 순서대로 수행해야합니다. 그렇지 않으면 작동하지 않습니다. 예를 들어, 명령 프롬프트가 이미 열려 있으면 (Windows 탐색기 이전) 명령이 작동하지 않습니다.
Windows 7에 대해 저장된 모든 암호는 자격 증명 관리자에 저장됩니다.
제어판 \ 모든 제어판 항목 \ Credential Manager
사용자 이름과 암호를 사용하여 네트워크 위치에 인증하면 해당 사용자 이름과 암호는 로그온 세션에 대해 캐시 된 상태로 유지됩니다. 다시 인증하기 전에 로그 오프했다가 다시 로그온해야합니다.
net use
위의 답변을 참조하십시오 . Windows 탐색기를 통해 네트워크 공유에 액세스하는 데 사용하는 자격 증명은 자격 증명 관리자에 저장되지 않습니다.
Remember this
자격 증명을 제공 할 때 확인란을 선택하면 해당 확인란이 저장됩니다. 그러나이 상자는 기본적으로 선택되어 있지 않습니다. 다시 인증하기 위해 로그인 세션을 닫을 필요가 없기 때문에 답이 오도됩니다.
또한 @rocketsarefast의 답변 에서 새로운 로그인 시도가있을 때 Windows가 이전 네트워크 자격 증명을 지우는 것을 발견했습니다 .
그러나 그의 net use "\\10.0.0.5\c$" "badpassword" /user:"baduser"
명령은 너무 느리다. 특히 클라이언트가 서버가 거부로 응답 할 때까지 몇 초까지 기다려야 할 때, 이는 끔찍하고 불편하다.
사용 사례에서는 Win32 API를 사용하여 네트워크 공유 \\Server\Share
를 S:\
드라이브 에 매핑 할 수있었습니다 . 먼저 드라이브 연결을 끊은 다음 다른 사용자로 로그 아웃하고 로그인 할 수 있도록 Windows 네트워크 로그인 대화 상자를 표시합니다.
C 코드는 다음과 같습니다 main.c
.
#ifndef UNICODE
#define UNICODE
#endif
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#define _WIN32_IE 0x0500
#pragma comment(lib, L"mpr.lib")
#include <windows.h>
//#include <stdio.h>
int wmain(const size_t argc, const wchar_t** argv) {
NETRESOURCE networkResource = {0};
networkResource.dwType = RESOURCETYPE_DISK;
networkResource.lpLocalName = L"S:";
networkResource.lpRemoteName = L"\\\\Server\\Share";
networkResource.lpProvider = NULL;
DWORD result = 0;
result = WNetCancelConnection2(networkResource.lpLocalName, CONNECT_UPDATE_PROFILE, TRUE);
// wprintf(L"WNetCancelConnection2 result: %d\n", result);
result = WNetAddConnection2(&networkResource, NULL, NULL, CONNECT_INTERACTIVE | CONNECT_PROMPT);
// wprintf(L"WNetAddConnection2 result: %d\n", result);
// getchar();
return EXIT_SUCCESS;
}
여기에 CMakeLists.txt
:
cmake_minimum_required(VERSION 3.7)
project(MapNetworkDrive)
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c11 -g3 -pedantic -Wall -Wextra -O0")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS} -municode -mwindows")
set(SOURCE_FILES main.c)
add_executable(MapNetworkDrive ${SOURCE_FILES})
target_link_libraries(MapNetworkDrive mpr.lib)
32 비트 및 64 비트 Windows 용 MinGW-w64를 사용하여 컴파일 :
C의 대안으로 다음은 API에 대한 쉬운 C # 자습서입니다.
프로그래밍 방식으로 드라이브 문자 매핑 :
net use
연결 목록을 보려면 그냥 입력 한 다음 연결을 선택하고 Nate 제안과 같이 / delete 인수를 추가하십시오.