понедельник, 11 января 2010 г.

Проблема с доступом к файлам через SMB в Windows 7

Вид экрана с XBMC Я давно использую старый XBox как медиацентр (XBMC – XBox Media Center). Приставка у меня совсем старая (а не новая под номером 360), аппаратно модифицированная, с установленной специально оболочкой для работы с медиаконтентом. Играется и показывается очень многое, но для любителей видео с высоким разрешением не подходит – все же машинка старая, и процессор не тянет. Зато есть проигрывание видео/аудио с компакт-дисков и по сети, поддержка YouTube и Apple Trailers, погода с прогнозом на три дня вперед и другие приятности.

Сетевые возможности, пожалуй, – самые ходовые. На моем рабочем компьютере лежат файлы (домашний видеоархив и результаты монтажа оного, например), а в другой комнате под телевизором расположилась коробочка XBox. Для работы с общими папками (shared folders) по сети используется протокол SMB (Server Message Block) – специальный протокол запросов и ответов между клиентом и сервером. Он не существует сам по себе, а использует возможности NetBIOS поверх TCP/IP, но это уже технические тонкости.

Так вот, пока у меня на рабочем компьютере стояла операционка Windows XP Pro, все было путем – XBox видел общие папки и их содержимое. Стоило мне перейти на Windows 7, как ситуация изменилась – папки виделись, но к их содержимому доступ был закрыт. На экране постоянно появлялся запрос пароля, который все равно не работал.

Чего я только не перепробовал! Чуть операционку не стал переустанавливать. Интеренет полнился различными советами, но все они до поры до времени были как мертвому припарки. Причем, проблема касалась не только подвинутых влядельцев XBox, но и просто обладателей других операционных систем, включая даже Windows XP. И вот, ища что-то совсем другое (но тоже про Windows 7), я наткнулся на совет, который ниже и изложу.

Дело оказалось в неправильном значении MTU (Maximum Transmission Unit), которое в Windows 7 было отдано на откуп операционке, и она выставляла его самостоятельно. Вот это значение нам и предстоит изменить в реестре операционной системы. Все операции надо будет делать в режиме Администратора, а потому делайте это все на свой страх и риск – если что-то испортится, то я не виноват. Вначале, естественно, прочитайте всю инструкцию до конца, чтобы знать все шаги, которые предстоит совершить.

1. Жмете Пуск (Start) и в строке поиска вы набираете cmd, но не нажимаете Ввод (Enter). Или следуете Пуск (Start) –> Все Программы (All Programs) –> Стандартные (Accessories) –> Коммандная Строка (Command Prompt). По тому или другому пункту в меню “жмете” правой кнопкой мыши и выбираете опцию “Запустить как Администратор (Run As Administrator)”. Выберете “Да (Yes)”, если появится окно UAC (User Account Control).

2. В режиме командной строки набираете (или копируете из буфера обменя) команду:

netsh int tcp set global autotuninglevel=disabled

и жмете Ввод (Enter). Эта команда отключит автоматическую установку значения MTU.

3. Теперь нам надо установить такое значение, которе будет работать. Делать это надо, редактируя реестр, а потому будьте осторожны. Запускаете regedit.exe (можно также через строку поиска) опять в режиме Администратора. Ступайте вот по такому пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servic es\Tcpip\Parameters\Interfaces\

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

4. Правой кнопкой мышки “жмете” по названию выбранного каталога и выбираете пункт меню Редактировать (Edit) –> Создать (New) –> DWORD (32 bit). Вводите имя “MTU” (заглавными буквами и без кавычек).

Установка значения MTU в реестре Windows 7 5. Теперь, когда новый параметр создан, двойным щелчком выбираете его для редактирования и в открывшемся диалоговом окне указываете значение 5d4 в режиме Hexadecimal (должен быть по умолчанию) или 1492 в режиме Decimal.

6. Сохраняете и повторяете для других каталогов/папок если нужно.

7. На всякий случай перегрузите операционную систему.

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

Так что я продолжаю плавание с Windows 7, которая мне по-прежнему нравится. А вам? ;-)