Чи є спосіб "відключити" відображений на карті мережевий диск, але НЕ видалити відображення?


12

Наприклад, коли я друкую, net useя можу побачити щось на кшталт:

Status        Local       Remote
OK            H:          \\server\home folders\me
Unavailable   I:          \\serverA\share1
Disconnected  J:          \\serverB\share2
Reconnecting  K:          \\serverC\share3

Коли це відбувається, Windows Explorer затримується на 10 - 20 секунд, коли робить щось таке просте, як створення нової папки на моєму диску: C :. Через деякий час привід K: зміниться, щоб сказати "Відключено".

Що я хочу зробити, це якимось чином змусити диск K: бути відключеним або недоступним, але без втрати автентифікованого відображення.


2
Щойно з цікавості, чому ти вважаєш, що це потрібно?
Зоредаче

2
Я підключаюсь до VPN, використовую диск K:, а потім відключаю VPN. Після цього мій Провідник часто повільний, поки остаточно не позначить K: як відключений. Це спрощення, оскільки у мене є більше 3 відображень дисків, необхідних різним сценаріям, і я можу підключати / відключатись від VPN кілька разів на день.
Глен Малий

1
@GlenLittle Ви намагалися зняти прапорець "знову підключитися при вході" під час картування диска?
Мойсей

4
Чому б не зробити сценарій для підключення та відключення накопичувачів (включаючи видалення відображення). Як тут, ви навіть можете створити сценарій, який автоматично підключатиметься до VPN, і сценарій для відключення (включаючи всі речі з картографічним накопиченням)
Rik

4
A net use \\serverB\share2 /deleteповинен зробити трюк (він відключає накопичувач, але не впливає на картографування)
Paolo Gibellini

Відповіді:


1

Microsoft, схоже, намагається перенести такі адміністративні завдання, як PowerShell.

У вашому конкретному випадку командлет, який слід використовувати, є Remove-PSDrive. Remove-PSDrive зробить саме те, що ви просите: відключіть зіставлений мережевий диск. Синтаксис вашого сценарію буде таким:

Видалити-PSDrive -Назву K

Щоб потрапити в командний рядок powershell, де ви можете запустити цей командлет, відкрийте меню «Пуск», а у вікні пошуку просто введіть shellhell. Якщо у вас немає вікна пошуку, тоді в меню "Пуск" виберіть "Запустити", а у полі запуску введіть "shellhell" і натисніть клавішу Enter.

Докладні відомості про використання цього командлету, включаючи всі його параметри, див. У статті про техніку Microsoft:
http://technet.microsoft.com/en-us/library/hh849760.aspx


Звучало дуже перспективно, але не працює для мене. Якщо я це зробити net use y: ...., то запустіть PowerShell і зробіть get-psdrive, я бачу в Yсписку. Виконує remove-psdrive -Name Yце видалення. Але потім це net useвсе ще показує, і я все ще можу використовувати диск Y:. (Для цього використовували PS v2. Мабуть, працює з v4.)
Глен Літтл

Powershell 4.0 вийшов пару тижнів тому ... technet.microsoft.com/en-us/library/hh847820.aspx
Glen Little

@GlenLittle Але це видаляє букву диска або від'єднує її, зберігаючи букву? Якщо він видаляє його, чи не те саме net use Y: /delete?
Рік

Нарешті вдалося спробувати. На жаль, це, здається, імітує, Net use /deleteяк @Rik здогадався. Я не бачу різниці, що стосується мережевих накопичувачів.
Глен Малий

1

Добре. У мене може бути рішення. Я спробував розглянути /savecredпараметр, net useале не міг змусити його працювати належним чином, ось ось інший підхід:

Вашою проблемою була затримка з Explorer після відключення з VPN.
То чому б не приховати диски від Провідника після відключення, щоб він не намагався отримати доступ до них.

Існує ключ реєстру для приховування дисків від Провідника:

HKEY_xxx\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives

і HKEY_xxx можуть бути HKEY_LOCAL_MACHINEі HKEY_CURRENT_USER.

Під цією публікацією розміщено резюме того, яке значення NoDrivesмає містити.
(додайте номери накопичувачів).


Я створив невеликий пакетний файл, де вам не доведеться робити розрахунки самостійно.
Це 'перемикач'-пакетного файлу.

Запустіть його один раз, щоб підключитися до "Моєї VPN".
Запустіть його знову , щоб відключити і приховати диски I, J і K .

Ви можете легко розділити це на дві пакетні файли, але ви зрозумієте ... Ви також можете спростити цей пакетний файл, якщо ви встановите кількість NoDrivesсебе замість того, щоб дозволити партії робити обчислення.

Це потрібно запустити як адміністратор. (можна автоматично підняти, але це дуже вдосконалено)

Якщо ви надаєте собі дозвіл на ключ, NoDrivesвам не доведеться запускати це як адміністратор. Просто відкрийте regedit.exe, перейдіть до цієї клавіші та натисніть "Редагувати> Дозволи" та надайте собі "Повний контроль" над цією клавішею.

@echo off
:: ------------------------
set MyVPN="My VPN"
:: ------------------------
rasdial | findstr %MyVPN% 1>nul
If %ERRORLEVEL% == 0 goto disconnect

:connect
echo ============================================================
echo connecting to %MyVPN%
echo ============================================================
rasdial %MyVPN%
:: This is easy. We just set 0 in NoDrives
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /T REG_DWORD /d 0 /f

goto :end

:disconnect
echo ============================================================
echo disconnecting from %MyVPN%
echo ============================================================
rasdial %MyVPN% /disconnect

:: ------------------------------------------------------------------
:: This is harder. We need to determine what value NoDrives should be
:: ------------------------------------------------------------------
Setlocal EnableDelayedExpansion

:: ------------------------
:: Set here your VPN drives
:: ------------------------
set drives='I J K'

:: ------------------------
:: Calculation to determine the value
:: ------------------------
set drive_value=1
set NoDrives=0
for %%c in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  echo.%drives% | findstr "%%c" 1>nul
  if !ERRORLEVEL! == 0 set /a NoDrives+=drive_value
  set /a drive_value="drive_value<<1"
)
echo Seting NoDrives to %NoDrives%
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoDrives /T REG_DWORD /d %NoDrives% /f
endlocal

:end
pause

Примітка.
Провідник Windows потрібно закрити та відкрити ще раз, перш ніж накопичувачі (або знову будуть видимі).


Налаштування для NoDrives:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrives

     Decimal       Hex
A:         1         1
B:         2         2
C:         4         4
D:         8         8
E:        16        10
F:        32        20
G:        64        40
H:       128        80
I:       256       100
J:       512       200
K:      1024       400
L:      2048       800
M:      4096      1000
N:      8192      2000
O:     16384      4000
P:     32768      8000
Q:     65536     10000
R:    131072     20000
S:    262144     40000
T:    524288     80000
U:   1048576    100000
V:   2097152    200000
W:   4194304    400000
X:   8388608    800000
Y:  16777216   1000000 
Z:  33554432   2000000 

Виглядає цікаво ... Мені доведеться це спробувати. Любіть використання побітової математики у пакетному файлі!
Glen Little

0

Я не знаю, як це зробити, але я склав би сценарій, щоб додати картографічний диск, щоб полегшити життя.

  1. Створіть файл із розширенням .bat (напр. Map_drives.bat)
  2. Всередині файлу додайте такий рядок net use J: \\server\folder
  3. Двічі клацніть на цьому файлі, і він відобразить ваш диск

Дякую за відповідь. Я б це зробив, але для деяких дисків потрібні різні ідентифікатори id / pw, і я не хочу вкладати їх у сценарій.
Glen Little
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.