Назад | Перейти на главную страницу

Как удалить учетные данные для входа в сеть в Win7?

Я просто пытался получить доступ к такой папке:

\\somecomputeronmynetwork\somelocation$

Когда я иду в это место, мне предлагается ввести имя пользователя и пароль.

Я вставил одну, и она меня впустила.

Теперь мне нужно удалить этот логин, чтобы я мог попробовать другое имя пользователя и пароль.

Как это сделать проще всего?

Откройте командную строку или введите команду start / run:

net use \\somecomputeronmynetwork\somelocation$ /delete

Вы также можете использовать следующую команду для вывода списка «запомненных» соединений:

net use
  1. Откройте меню «Пуск», в строке поиска введите:

    manage passwords
    
  2. Вы увидите приложение под названием «Управление учетными данными Windows».
  3. Откройте это приложение, оттуда вы можете проверить / отредактировать / удалить сохраненные сетевые учетные данные.

Это не сработает, если в вашей 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, это особенность.

Чтобы удалить соединение с ПК, на котором он был создан для доступа к папке, а пользователь был кэширован (т.е. оставался активным), необходимо неукоснительно использовать следующую процедуру (шаг за шагом):

  1. доступ к папке с пользователем / паролем

2 Закройте все окна проводника машины

3 Откройте командную строку

4 Выполните команду

Чистое использование * / del

*** Делать нужно именно в такой последовательности, иначе может не работать. Например, если командная строка уже открыта (до проводника Windows), команда работать не будет.

Попробуйте, это может сработать в Windows 7 [работает в XP]. Просто введите это в Пуск-> Выполнить-> control keymgr.dll
Откроется окно, в котором будут храниться сохраненный пароль и имена пользователей, оттуда вы сможете удалить.

Я использую поддельные учетные данные, чтобы действительно отключить доступ.

net use * /d /y
net use "\\10.0.0.5\c$" "badpassword" /user:"baduser"
net use * /d /y

это, похоже, перезаписывает старые учетные данные и заставляет проводника пытаться использовать новые неверные учетные данные.

Все сохраненные пароли для Windows 7 сохраняются в Credential Manager.

Панель управления \ Все элементы панели управления \ Диспетчер учетных данных

Если вы аутентифицируетесь с использованием имени пользователя и пароля в сетевом расположении, это имя пользователя и пароль останутся в кэше для вашего сеанса входа в систему. Вам нужно будет выйти из системы и снова войти, прежде чем вы сможете повторно пройти аутентификацию.

Я также обнаружил из Ответ @ 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)

Скомпилируйте с помощью MinGW-w64 - для 32- и 64-битной Windows:

В качестве альтернативы C, вот простой учебник C # по API:

В Windows 10 (Powershell 5+) теперь также можно использовать Remove-SmbMapping.

Remove-SmbMapping -RemotePath \\somecomputeronmynetwork\somelocation$

Также проверьте Get-Command *Smb*.

Вы, конечно, можете удалить свое соединение, выполнив

net use \\somemachine\someshare /d

Но вы, вероятно, тоже захотите снова подключиться. Кроме того, если у вас есть кэшированные учетные данные в общей сетевой папке, то при повторном установлении соединения вы можете столкнуться с одной из следующих ошибок:

Произошла системная ошибка 1272.

Вы не можете получить доступ к этой общей папке, потому что политики безопасности вашей организации блокируют неаутентифицированный гостевой доступ. Эти политики помогают защитить ваш компьютер от небезопасных или вредоносных устройств в сети.

или

Произошла системная ошибка 1219.

Множественные подключения к серверу или общему ресурсу одним и тем же пользователем с использованием более одного имени пользователя не допускаются. Отключите все предыдущие подключения к серверу или общему ресурсу и повторите попытку.

Вместо этого я предлагаю решить проблему без перезагрузки, выполнив следующие действия:

net stop workstation
net start workstation

Это имеет дополнительный бонус, хотя вы Отключить любые существующие общие ресурсы, они не будут забыты, как если бы вы удалили их чем-то вроде net use * /d.

Если вам не нравится командная строка, вы также можете перезапустить службу рабочей станции, перейдя в Сервисы напрямую:

  • Нажмите клавишу Windows, введите services, нажмите Ввод
  • Найдите службу под названием «Рабочая станция». щелкните его правой кнопкой мыши и выберите начать сначала.

Тогда попробуйте свой net use \\somemachine\someshare /user:someuser команду еще раз, чтобы получить повторный запрос учетных данных.