Вихід із мережевого накопичувача без перезавантаження?


6

У мене є невеликий сценарій, який працює на кожній робочій станції, яка запускає defrag і chkdsk і тимчасово підключає кожну робочу станцію до спільної мережі, до якої вони, як правило, не мають доступу. Команда, яку я використовую для підключення до них:

net use \\server\sharename [password] /USER:domain\username P:No

Чи існує команда для виходу цього користувача із спільного доступу диска без перезавантаження комп'ютера?

Робочі станції працюють на Windows XP SP3

EDIT: Я використовував:

net use \\server\sharename /delete

але команда повертає "Мережеве з'єднання неможливо знайти". Однак я все-таки можу перейти \\server\sharenameв адресний рядок MyComputer і мати повний доступ до нього.

EDIT2: Припустимо, я прочитав файли довідки для використання в мережі; D

EDIT3: Чи вистачить перезавантаження? Так ... однак зручніше замість цього користувача вийти з папки = D. Я знаю, що мені важко.


1
Ви пробували Net Use * /Del?
Ƭᴇcʜιᴇ007

ми інші користувачі, пов’язані з входом у систему, і не хочемо видаляти їх усі. Тільки той, до якого ми тимчасово дозволили користувачеві отримати доступ.
Mechaflash

Я (в основному) мав на увазі тестування. Але я думаю, що я бачу, що тут відбувається, тому я додав "відповідь". :)
Ƭᴇcʜιᴇ007

Відповіді:


5
net use \\server\sharename /delete

РЕДАКТУВАННЯ: Щоб змусити видалити облікові дані:

net use \\server\IPC$ /delete

хм, зазвичай SU сповіщає мене швидше, якщо відповідь буде додана під час набору тексту, +1 для першого.
MaQleod

3
Я спробував це, але команда повертає "Мережеве з'єднання не знайдено". Однак я все ще можу вільно отримати доступ до мережі. \
Mechaflash

Я такий німий ... подвійно перевірив свій код сьогодні вранці і виявив, що у мене є трейлінг \ на ім'я спільного доступу ... перевірив його, і так, слідова коса риса має значення. Вибачте за мій n00bizm
Mechaflash

3
Я спробував, net use \\server\IPC$ /deleteі це дає помилку The network connection could not be found.
Дрю Шапін

1
net use * /delможе бути використаний як підхід до рушниці, якщо у вас немає інших з'єднань, які ви проти зруйнуєте ( net useсам перерахує їх). Після цього, якщо вона все ще не працює, перезавантажте службу Workstation замість перезавантаження.
Джейсон C


3

Якщо net useкоманди, перераховані тут, не роблять фокусу, замість перезавантаження, ви можете просто перезапустити службу Workstation (я не впевнений, як це зробити без перезавантаження служби, хоча):

  1. Спочатку використовуйте відповідні net useкоманди, як зазначено вище (наприклад, net use * /delдля підходу до рушниці).
  2. Панель управління -> Адміністративні інструменти -> Послуги
  3. Знайдіть робочу станцію у списку.
  4. Клацніть правою кнопкою миші та виберіть « Перезапустити» .

Якщо у вас відкриті вікна провідника для спільної папки або будь-які відкриті файли, можливо, вам доведеться закрити їх, щоб служба перезапустилася (якщо, як видається, перезапуск висить, це зазвичай так).

Можна також перезапустити службу в командному рядку за допомогою:

net stop Workstation
net start Workstation
net start "Computer Browser"

Оглядач комп'ютерів старт зазвичай необхідно , так як зупинки робочої станції також зупиняє Оглядач комп'ютерів . Ви побачите, чи є це у висновку з першої команди. Знову може знадобитися закриття вікна провідника та відкритих файлів.


Довідка: https://social.technet.microsoft.com/Forums/windows/en-US/58494ea1-e3a0-49ab-be5c-1aa2b86f13c9/how-to-logout-from-shared-folder


0

@rocketsarefast і я знайшов ще один спосіб очищення мережевих облікових даних. Я опублікував свою відповідь у цій темі:


З відповіді @ rocketsarefast я також виявив , що Windows очистить старі облікові дані мережі, коли буде нова спроба входу.

Однак його net use "\\10.0.0.5\c$" "badpassword" /user:"baduser"команда занадто повільна, особливо коли клієнту доводиться чекати до декількох секунд, щоб сервер відповів відмовою, що страшно і незручно.

У моєму випадку використання я зміг скористатися API Win32, щоб зіставити спільний доступ \\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:


Будь ласка, не публікуйте однакову відповідь на кілька запитань. Якщо однакова інформація дійсно відповідає на обидва запитання, то одне питання (як правило, нове) має бути закрите як дублікат іншого. Ви можете вказати це, проголосувавши, щоб закрити його як дублікат або, якщо у вас недостатньо репутації для цього, підняти прапор, щоб вказати, що це дублікат. В іншому випадку підгадуйте свою відповідь на це питання і не просто вставляйте однакову відповідь у декілька місць.
DavidPostill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.