Odłączanie / wylogowywanie z udziału sieciowego Windows bez ponownego uruchamiania usługi stacji roboczej

14

Mam uruchomiony serwer plików (SMB), z którym połączyłem się w Eksploratorze (Windows 7 Professional), odwiedzając bezpośrednio \\ 1.2.3.4. Zalogowałem się jako jeden użytkownik, bez zapisywania poświadczeń, i teraz chcę się wylogować (tak naprawdę chcę zmienić się na innego użytkownika, ale ogólnie rzecz biorąc przydatne byłoby wylogowanie).

Szukałem sposobów na zrobienie tego i znalazłem mnóstwo informacji, które sugerują użycie jakiejś formy net use \\1.2.3.4 /del:

Jednak żadne z nich nie działało dla mnie. Uruchamiam net use * /del, a następnie używam net usedo sprawdzenia, czy lista jest pusta, a jednak udział w tajemniczy sposób pozostaje w Eksploratorze, pozostaje nienaruszony, dostępny i nadal używa poprzedniego logowania.

Inną rzeczą, której próbowałem, a która również się nie powiodła, było np. net use \\1.2.3.4 /user:newusernameZmiana poświadczeń. Jednak nawet gdy net usepokazywała pustą listę połączeń , nadal pojawiał się błąd informujący, że wiele połączeń do tego samego zasobu z różnymi użytkownikami nie było dozwolone - dlaczego istniały połączenia, które nie pojawiły się na net useliście, jest dla mnie tajemnicą.

Znalazłem ten artykuł Jak wylogować się z folderu współdzielonego (microsoft.com), który zaleca:

  1. net use * /del (lub jakikolwiek inny serwer).
  2. Wyczyść dane uwierzytelniające od Credential Manager.
  3. Uruchom ponownie usługę stacji roboczej.

Ta procedura zadziałała dla mnie. Menedżer poświadczeń nie był interesujący, ponieważ nie zapisałem poświadczeń, jednak netkluczem było ponowne uruchomienie usługi stacji roboczej po wyczyszczeniu połączeń (musiałem zamknąć wszystkie okna eksploratora, aby usługa została uruchomiona ponownie).

Moje pytanie brzmi: nie jest to wcale zbyt wygodne, zwłaszcza gdy muszę to wyjaśnić użytkownikom mniej zaawansowanym technologicznie. Chociaż z pewnością mógłbym stworzyć np. Skrypt wsadowy do automatyzacji całej sprawy, czy istnieje rzeczywisty, właściwy, spójny sposób, który nie wymaga ponownego uruchamiania usług (i prawdopodobnie nie obejmuje wiersza poleceń, chociaż osobiście nie „ t mind)?

Również pytanie cząstkowe: Dziwne jest dla mnie, że ogromna większość zasobów, które znalazłam w tej sprawie, nie sugerowała ponownego uruchomienia stacji roboczej, a sugerowany proces używania net usesamego wydawał się działać przynajmniej dla innych osób, które opublikowały komentarze na temat te posty. Czy ponowne uruchomienie stacji roboczej jest dla mnie wyjątkowe i wskazuje na jakiś inny problem na moim komputerze, czy też z jakiegoś powodu zostało po prostu pominięte we wszystkich instrukcjach? Tylko post pomocy technicznej microsoft.com zawierał instrukcje, które zalecały ten krok, co w końcu sprawiło, że zadziałał.

Wylogowanie z udziału wydaje się być dość powszechnym przypadkiem użycia, aby uzasadnić prosty sposób, więc jestem zaskoczony, jak trudno było mi to zrozumieć.


Inne rzeczy, których próbowałem bez efektu:

  • Zamykanie wszystkich okien Eksploratora przed i po użyciu net usepoleceń (zgodnie z sugestią Kody Browns ), a także daremne ustawienia „osobnego okna na folder”, mając nadzieję, że będzie to buforowanie poświadczeń dla poszczególnych procesów (zainspirowane również tą odpowiedzią) .
  • Zmiana ustawień zarządzania połączeniami grupy domowej (sugerowane przez odpowiedź holmzi_online w powyższym poście microsoft.com).
  • Zabicie wszystkich procesów eksploratora (w tym głównego) i ponowne uruchomienie eksploratora po net use * /del(sugerowane tutaj przez Roberta Greera , chociaż ten problem dotyczył mapowanych dysków).
Jason C.
źródło
1
@sttr Dzięki, ale nie jestem pewien, czy widzę związek między tym a tym artykułem. Czy możesz dać wskazówkę?
Jason C
Wskazówka, że ​​w tym trybie ABE każdy użytkownik widzi tylko foldery i pliki, do których jest uprawniony. W przeciwnym razie użytkownik musi być samowystarczalny, aby uzyskać dostęp do zasobów i bez konieczności wprowadzania hasła. Jeśli „serwerem” jest Windows 7, spójrz na slickit.ca/2009/07/webdav-on-windows-7.html
STTR
1
@STTR Dzięki. W jaki sposób ukrywanie folderów przed nieautoryzowanymi użytkownikami lub konfigurowanie serwera WebDAV pomaga wylogować się z udziału SMB, do którego można uzyskać dostęp, wpisując \\ adres?
Jason C
1
@STTR Pytanie brzmi, jak sugeruje tytuł, jak wylogować się z folderu współdzielonego (SMB, czyli systemu Windows używanego do „folderów współdzielonych”) bez ponownego uruchamiania usługi stacji roboczej (patrz także „Zalogowałem się jako jeden użytkownik, bez zapisywania poświadczeń, a teraz chcesz się wylogować ” ). Nie dodam WebDAV do moich serwerów, nie mogę dodawać usług WebDAV do serwerów, nad którymi nie mam kontroli, ani nie jestem pewien, w jaki sposób rozwiązuje to problem wygodnego wylogowania. Czy wiesz, jak wylogować się z folderu współdzielonego?
Jason C

Odpowiedzi:

1

2) Nie jesteś sam w tym numerze. Większość ludzi prawdopodobnie nigdy tego nie doświadcza, ponieważ ma tylko jednego użytkownika i / lub wielu użytkowników, ale wszyscy mają to samo hasło. Wydaje mi się, że cały czas tego doświadczam. Zakładam, że dzieje się tak, ponieważ mam tę samą nazwę użytkownika na wielu komputerach, ale z różnymi hasłami .. (Nie jestem w domenie; laptop to Windows 8.1 z serwerami Windows i Linux…)

(z pamięci) Jeśli otworzę udział root komputera, taki jak \ raspi, przed uzyskaniem dostępu do zablokowanego udziału, takiego jak \ raspi \ private, będę mieć ten problem. Wygląda na to, że połączenie jest najpierw nawiązywane przy użyciu udziału publicznego / otwartego, a następnie zapisywane.

Jeśli chodzi o 1), muszę tylko zamknąć okna Eksploratora i (czasami monity poleceń), które uzyskały dostęp do tego udziału. Nigdy nie musiałem ponownie uruchamiać usługi stacji roboczej.

Ale to może działać dla mnie, ponieważ zawsze mówię Windowsowi, aby „uruchamiał okna folderów w osobnym procesie” ..

Tylko myśl…

Kody Brown
źródło
Dzięki!! Naprawdę miałem nadzieję, że twoja sugestia zamknięcia okien eksploratora byłaby prostą poprawką (mam również osobne procesy dla okien folderów), może jakieś dane uwierzytelniające buforowane dla poszczególnych procesów. Niestety, to nie pomogło, ani nie wyłączyło oddzielnych procesów na okno. Nie zauważyłem też żadnej zmiany w zachowaniu, gdybym próbował uzyskać dostęp do \\ 1.2.3.4 \ Udostępnij najpierw zamiast katalogu głównego (również nie ma różnicy w dostępie według nazwy hosta zamiast adresu IP). Nie jestem także w domenie i używam serwerów opartych na systemie Windows i Linux. Coś zapisuje dane uwierzytelniające lub połączenia, ale nie wiem co.
Jason C
Kolejny punkt danych: bez względu na ustawienia procesu dla folderu zabicie wszystkich procesów eksploratora (w tym głównego) i ponowne uruchomienie eksploratora również nie przyniosło żadnego efektu, co mnie zaskoczyło.
Jason C
Mam zamiar trochę się pobawić z moim środowiskiem, aby przetestować to jeszcze bardziej, i pomyślałem ... twoje okna (eksplorator, wiersz poleceń itp.) Są wszystkie podwyższone, czy nie, prawda? Byłem sfrustrowany wiele razy, kiedy nie zdawałem sobie sprawy lub zapomniałem, że jedna z moich aplikacji została podniesiona. Działa to dziwnie w przypadku udziałów sieciowych ...
Kody Brown
Konto, z którego korzystam, jest administratorem i wszystko jest podwyższone. Utworzyłem nowe konto niebędące administratorem i stamtąd przetestowałem, zachowanie się nie zmieniło.
Jason C
1

Udało mi się to, wykonując następujące czynności:

  1. Biegać net use * /delete
  2. Wyczyść dane uwierzytelniające (np. Moje to 172.26.190.129, a data utworzenia to dzisiaj, tylko to)
  3. Wyłącz „połączenie lokalne” (Panel sterowania \ Sieć i Internet \ Net Connect \ Local Connect)
  4. Poczekaj chwilę (nie wiem dlaczego, ale myślę, że może to zepsuć niektóre linki z mojego Win7 do Ubuntu i wyczyścić pamięć podręczną)
  5. Włącz „połączenie lokalne” i zadziałało.
Seiya Cai
źródło
2
Co rozumiesz przez „Wyczyść dane uwierzytelniające” i jak to robisz?
Calimo,
„Wyczyść dane uwierzytelniające” jest tutaj całkowicie niejasne.
Jonathan Wood,
0

To może być długa szansa, ale czy po użyciu czekałeś wystarczająco długo net use * /d? O ile mi wiadomo, nawet po usunięciu udziału system Windows utrzymuje sesję otwartą, jeśli są otwarte uchwyty (okno Eksploratora itp.). I nawet po zamknięciu tych uchwytów upłynął limit czasu, w którym ponownie połączy udział. Domyślnie 10-15 minut. Możesz to skrócić w rejestrze.

Zobacz https://blogs.msdn.microsoft.com/oldnewthing/20110223-00/?p=11413

Wydaje się jednak, że „KeepConn” nie jest już używany w nowszych wersjach systemu Windows. Zobacz „Czas bezczynności połączenia” na tej stronie: http://blogs.msdn.com/b/openspecification/archive/2013/03/19/cifs-and-smb-timeouts-in-windows.aspx

Stimm
źródło
0

Start -> Panel sterowania -> Konta użytkowników i bezpieczeństwo rodzinne -> Konta użytkowników -> Zarządzaj swoimi danymi uwierzytelniającymi.

Rozwiń jeden z „Poświadczeń systemu Windows”, a następnie kliknij „Usuń z przechowalni”.

Start -> Panel sterowania

Panel sterowania -> Konta użytkowników i bezpieczeństwo rodzinne

Konta użytkowników i bezpieczeństwo rodzinne -> Konta użytkowników

Konta użytkowników -> Zarządzaj swoimi danymi uwierzytelniającymi

Wyloguj

tak

Zwycięzca
źródło
-1
net use * /del
net stop Workstation /Y
cmdkey /delete:<resourcename>
net start Workstation
net start browser

Sposób 2: Użyj wielu nazw NetBIOS dla jednego komputera:

reg add "HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters" /v OptionalNames /t REG_MULTI_SZ /d "NetBIOSName01\0 NetBIOSName02\0 NetBIOSName03\0"

Następnie możesz połączyć zasoby różnych użytkowników przy użyciu różnych nazw NetBIOS.

net use L: \\NetBIOSName01 /user:<username01> <password01> /P:Yes
net use M: \\NetBIOSName02 /user:<username02> <password02> /P:Yes
net use N: \\NetBIOSName03 /user:<username03> <password03> /P:Yes

Edytuj %windir%\system32\drivers\etc\lmhostsi dodaj

<Server IP>  NetBIOSName01            #PRE
<Server IP>  NetBIOSName02            #PRE
<Server IP>  NetBIOSName03            #PRE
<Server IP>  <OriginalNetBIOSname>            #PRE

na wszystkich sieciowych stacjach roboczych

Wszyscy użytkownicy połączą się z jego zasobami.

STTR
źródło
Jak na tytuł pytania, to nie odpowiada na pytanie.
Daniel B
Dzięki, ale to ponownie uruchamia usługę stacji roboczej. Wspomniałem o tym w pytaniu, ale już wiem, że mogę zautomatyzować ponowne uruchomienie za pomocą skryptu. Właściwie opublikowałem mniej więcej to samo polecenie na superuser.com/a/883606/245945 . To, czego tak naprawdę szukam, jest szczegółowe, gdzie napisałem „pytanie” i „pytanie częściowe” pogrubioną czcionką w moim poście.
Jason C
@JasonC Oryginalna przyczyna wszystkich tych działań Błąd systemu 1219?
STTR
@STTR Pierwotną przyczyną jest chęć wylogowania bez ponownego uruchamiania usług. Wyniki moich prób są opisane w moim poście.
Jason C
@STTR Dzięki. Aktualizacja jest interesująca i doceniam twój czas, ale nie jestem pewien, co do połączenia. Nie próbuję mapować dysków ani logować się z wieloma użytkownikami jednocześnie. Po prostu próbuję wylogować się z udziału, do którego pierwotnie uzyskano dostęp, przechodząc bezpośrednio na adres \\. Niekoniecznie musi to być zmiana użytkownika. Być może po prostu odchodzę od komputera i nie chcę pozostawiać zalogowanego udziału. W jaki sposób zalogowanie się jako wielu użytkowników na wielu współdzielonych dyskach pomoże wylogować się z folderu współdzielonego bez ponownego uruchamiania usług?
Jason C