Страница 1 из 1

Не подключаются сетевые диски в Windows 7

СообщениеДобавлено: 26 окт 2012 12:24, Пт
UncleFather
Проблема:

Имеется контроллер домена на Microsoft Windows Server 2003 R2 + рабочие станции на Microsoft Windows XP SP3 Professional и Microsoft Windows 7 Professional. Рабочие станции заведены в домен. В домене в групповых политиках для пользователей прописан скрипт, подключающий сетевой диск.

При входе на ПК с Windows XP, сетевые диски подключаются нормально, при входе на некоторые ПК с Windows 7 сетевые диски не подключаются, при входе на другие ПК, тоже с ОС Windows 7 - подключаются нормально.
Если на "ненормальном" ПК запустить этот же скрипт вручную, после загрузки интерфейса пользователя, то диски нормально подключатся. Более того, все остальные команды скрипта (и до и после команды подключения дисков) корректно выполняются на всех компьютерах домена.

Пытался подключать диски и из bat-файла:
Код: Выделить всё
@echo off
net use W: \\Server\Share1\Folder1 /PERSISTENT:NO
start "Mail" "https://mail.server.ru/webmail/login.php"

echo Y|reg import "\\Server\Share2\Folder2\Folder3\ForAllUsers.reg"


и из VBS-скрипта:
Код: Выделить всё
ON ERROR RESUME NEXT

set wshNetwork = WScript.CreateObject( "WScript.Network")
Set oShell = WScript.CreateObject("WScript.Shell")
DesktopPath = oShell.SpecialFolders("Desktop")

do while WSHNetwork.username = ""
WScript.Sleep 250
loop

WSHNetwork.MapNetWorkDrive "W:", "\\Server\Share1\Folder1"

set FSO=CreateObject("Scripting.FileSystemObject")
FSO.CopyFile "\\Server\Share2\Folder2\Folder3\Слушать радио.url",DesktopPath & "\Слушать радио.url""
FSO.CopyFile "\\Server\Share2\Folder2\Folder3\Дубль ГИС на сервере.lnk",DesktopPath & "\Дубль ГИС на сервере.lnk"



Решение:

Корень зла оказался во включенном контроле учетных записей пользователей. Необходимо отключить его (что не совсем правильно), либо, (что правильнее) согласно KB937624 в реестре по адресу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System создать параметр "EnableLinkedConnections" типа DWord и значением "1", после чего при следующем входе в систему все диски нормально подключатся.

Для тех, кому лень лазить в реестр, прилагаю файл реестра для импорта:
Код: Выделить всё
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLinkedConnections"=dword:1

LinkedConnections.rar
(792 байт) Скачиваний: 1593


К сожалению, в групповых политиках контроллера домена на MS Windows 2003 Server R2 нет возможности изменять вышеуказанный параметр. Поэтому для всех ПК с ОС MS Windows 7 приходится либо вручную вносить в реестр этот параметр, либо применить административный шаблон:
NetConnect.rar
(1.58 КБ) Скачиваний: 1179


После применения шаблона, управлять параметром "EnableLinkedConnections" можно в групповых политиках - Конфигурация компьютера -> Административные шаблоны -> Система -> Сетевой вход в систему -> Разрешить подключение сетевых дисков из загрузочных скриптов"
01.JPG



Примечание:

Способ с параметром "EnableLinkedConnections" не работает на Windows 8 + MS Windows 2003 Server. Точнее работает, но как-то неполноценно. Так, подключая расшаренный ресурс \\Server\Share\Folder, мы видим, что подключение на Windows 8 прошло нормально, в подключенных дисках все отображается правильно, и net use показывает корректное подключение. Но на самом деле, при попытке открыть подключенный диск, мы попадаем в папку \\Server\Share\, а не в \\Server\Share\Folder. И вне зависимости от глубины подключаемого общего ресурса, мы попадем лишь в коревую папку (например, даже если подключаться к \\Server\Share\Folder1\Folder2\Folder3\Folder4, по-факту мы подключимся только к \\Server\Share).

В этом случае помогает только ПОЛНОЕ отключение контроля учетных записей пользователей (UAC). Причем не перемещение ползунка вниз в менеджере контроля UAC, а именно отключение в реестре. Нужно поменять значение параметра «EnableLUA» на «0» по адресу HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System и перезагрузить компьютер. После этого сетевые диски подключатся нормально.

Поскольку, имхо, этот метод не очень хорош, то применять его нужно только в исключительных случаях. Тем не менее (пока ищу нормальное решение), для желающих выкладываю административный шаблон для изменения этого параметра через групповые политики Windows 2003 Server:
 
Код: Выделить всё
#if version >= 3

CLASS MACHINE

CATEGORY !!Network

CATEGORY !!sConnections

POLICY !!Text
   
   KEYNAME "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
   EXPLAIN !!ExplConnections
   VALUENAME "EnableLinkedConnections"
   VALUEON NUMERIC 1
   VALUEOFF NUMERIC 0

END POLICY

END CATEGORY ;sConnections

POLICY !!UACPolicy
   
   KEYNAME "SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
   EXPLAIN !!ExplEnableLUA
   VALUENAME "EnableLUA"
   VALUEON NUMERIC 1
   VALUEOFF NUMERIC 0

END POLICY

END CATEGORY ;Network

#endif

[Strings]
Network="Система"
sConnections="Сетевой вход в систему"
Text="Разрешить подключение сетевых дисков из загрузочных скриптов"
UACPolicy="Политика контроля учётных записей (UAC)"
ExplEnableLUA="Включить контроль учетных записей (UAC)"
ExplConnections="Разрешает подключение сетевых дисков из скриптов, применяемых при входе пользователя в систему. Актуально для MS Windows 7 со включенным UAC (контроль учетных записей)"

NetConnect&UAC.rar
(1.65 КБ) Скачиваний: 439


Этот шаблон включает в себя и предыдущий шаблон NetConnect для изменения параметра «LinkedConnections». То есть устанавливая шаблон NetConnect&UAC.adm, шаблон NetConnect уже не нужен.

Новые параметры будут отображены в групповых политиках в разделах:

  • «LinkedConnections»: Конфигурация компьютера -> Административные шаблоны -> Система -> Сетевой вход в систему -> Разрешить подключение сетевых дисков из загрузочных скриптов"
  • «EnableLUA»: Конфигурация компьютера -> Административные шаблоны -> Система -> Политика контроля учётных записей (UAC)


Обсуждение этой проблемы можно почитать здесь и здесь. По-сути, решения пока нет. Это считается багом Windows 8. Народ ждет Windows 8.1.