我只是试图访问一个文件夹,如下所示:
\\somecomputeronmynetwork\somelocation$
当到达这个位置时,系统会提示input用户名和密码。
我把一个放进去,这让我很好。
现在我需要删除login,所以我可以尝试一个不同的用户名和密码。
什么是最简单的方法来做到这一点?
打开命令提示符或从开始/运行types:
net use \\somecomputeronmynetwork\somelocation$ /delete
您还可以使用以下命令列出“记住”的连接:
net use
打开你的开始菜单,在search栏中input:
manage passwords
如果您的Windows没有login密码,则无法使用,所以请在其上input密码
Windows会尝试防止同时使用不同凭据login到同一台服务器,这是因为某些模糊的“安全原因”。
这个拦截发生在客户端,而不是服务器端。
你可以通过使用服务器的IP地址而不是服务器名来绕过这个。 我个人在命令行中做到这一点:
net use * \\myservername\mysharename /user:mydomain\theotheruser * /persistent:no ==> error - security reasons net use * \\xyzz'\mysharename /user:mydomain\theotheruser * /persistent:no ==> just fine
这样,您甚至可以使用不同的凭据连接两次相同的共享。 当您尝试从用户的计算机debugging用户权限问题非常有用。 甚至可以通过pipe理员权限在自己的计算机上连接,比如c $。
你删除一个共享我的或者右键单击,或net use x: /delete
但是:这不会删除您的客户端到服务器的推测连接。 只要浏览到资源pipe理器中的服务器,即使连接共享也不会计数,并且防止您使用其他凭据login到该服务器,除非您伪装该名称。
据微软称,这是一个function。
要删除到PC访问文件夹的连接,并且用户被caching(即保持活动状态),必须按照以下步骤严格使用(分步骤):
2closures本机的所有Windows资源pipe理器
3打开命令提示符
4执行命令
净使用* /删除
***应该按照这个顺序完成,否则不能工作。 例如,如果命令提示符已经打开(在Windows资源pipe理器之前)命令将不起作用。
试试这可能在Windows 7上工作[它在XP上工作]。 只需在开始 – >运行 – >控制keymgr.dll中input
它会打开一个窗口,在那里存储的密码和用户名将被存储,您将能够从那里删除。
所有保存的Windows 7密码都保存在Credential Manager中。
控制面板\所有控制面板项目\凭证pipe理器
如果您使用用户名和密码对networking位置进行身份validation,则该用户名和密码将保持为您的login会话caching。 您需要先注销,然后重新进行身份validation。
我使用假凭证来真正禁用访问。
net use * /d /y net use "\\10.0.0.5\c$" "badpassword" /user:"baduser" net use * /d /y
似乎覆盖旧的凭据并强制资源pipe理器尝试使用新的错误凭据。
我也从@ rocketsarefast的回答中发现,当有新的login尝试时,Windows将清除旧的networking凭证。
但是,他的net use "\\10.0.0.5\c$" "badpassword" /user:"baduser"
命令太慢了,特别是当客户端必须等待几秒钟以便服务器拒绝响应时,这是可怕的和不方便的。
对于我的用例,我能够使用Win32 API将networking共享\\Server\Share
映射到S:\
驱动器。 它首先断开驱动器,然后用Windowsnetworkinglogin对话框提示用户,以便该用户可以以其他用户身份注销和login。
这里是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)
使用MinGW-w64进行编译 – 适用于32位和64位Windows:
作为C的替代品,这里是一个关于API的简单的C#教程:
以编程方式映射驱动器盘符: