Які причини відмови локальних Windows з іменами-трубами?


14

Я працюю над цим цілий день і я застряг. Сьогодні вранці наші азіатські колеги зателефонували мені, оскільки додаток SolidWorks для нашої системи управління даними про продукти не міг спілкуватися з місцевим основним додатком. Проблема стосується комп'ютерів кінцевих користувачів у домені Windows. Ми використовували утиліти READPIPE та MAKEPIPE з панелі інструментів SQL-сервера, щоб з'ясувати, що основна проблема полягала в функції Windows.

  • Утиліта MAKEPIPE створює трубу і чекає клієнта. Утиліта READPIPE повертає: "Не вдалося відкрити трубу. Статус 53." Згідно з http://support.microsoft.com/kb/110905, це означає, що мережеве ім'я не знайдено. На моєму локальному комп'ютері труби без проблем відправляють "привіт" з READPIPE до MAKEPIPE.
  • Запускається серверний процес, який дозволяє імена-імена.
  • Параметри в розділі HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Lanmanserver \ Параметри виглядають нормально. Немає налаштування брандмауера.
  • Проблема стосується деяких користувачів, але не всіх. Ми не вносили змін до груп доменів, за винятком деяких груп спільних мереж.
  • Я ввійшов як адміністратор, і досі труби не працюватимуть.

Будь-яка допомога вдячна! Дякую.


Чи можуть постраждалі користувачі підключитися до звичайних спільних файлів на відповідному сервері?
Гаррі Джонстон

Наразі проблем з акціями немає. Це не проблема сервера / клієнта. Обидва процеси проходять на одному комп’ютері.
користувач152700

Коли ви відтворюєте проблему, увійшли на постраждалий комп'ютер як адміністратор, за допомогою READPIPE та MAKEPIPE, які саме команди використовуєте? (Будь ласка, відредагуйте свою публікацію, щоб включити їх, а не залишати їх у коментарях.)
Гаррі Джонстон

Дякую за твою підтримку. Це було важко, і я тут задокументую рішення.
користувач152700

Відповіді:


12

Потрібно 1,5 дня, щоб розібратися в кожному випадку. Ось для документації.

Симптоми

  • Перетягування в додатки не працює.
  • Міжпроцесовий зв'язок, наприклад, між основним додатком та додатками, не працює.

Причини / передумови

Міжпроцесовий зв'язок реалізований для деяких додатків за допомогою труб з назвою Windows (не плутати їх із трубами у стилі UNIX). Дивіться документацію MSDN: http://msdn.microsoft.com/en-us/library/aa365590.aspx

Можуть бути різні причини, коли труби з назвою Windows не працюють. Щоб переконатися, що труби є причиною проблеми, можна використовувати інструменти MAKEPIPE та READPIPE. Ця стаття KB описує процедуру тестування: http://support.microsoft.com/kb/68941 Провідник процесу інструментів Sysinternals також може бути корисним для пошуку, які труби в даний час відкриті. Скористайтеся опцією "Знайти -> Знайти обробку або DLL ..." і введіть шаблон "\ Пристрій \ НазвиПіпе \". Він покаже вам, які процеси мають, які труби відкриті. http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

Виправлення неполадок

Причина 1: Програму блокує брандмауер Труби

Windows може блокувати програми за допомогою іменованих труб. Зазвичай цей брандмауер не ввімкнено і налаштований через реєстр. Дивіться статтю про підтримку MS тут: http://support.microsoft.com/kb/925890 . Перевірте, чи не ввімкнено брандмауер труб або додайте Keytech та всі доповнення до списку дозволених програм.

Причина 2: Служба спільного використання файлів та принтерів не ввімкнена.

Іменовані труби ввімкнено процесом, який також контролює обмін файлами та принтерами. Перевірте, чи цей процес запущений за допомогою інструмента Служби Windows. Назва служби відображається як "Сервер" у списку послуг. Назва служби - LanmanServer, а EXE - це C: \ Windows \ system32 \ svchost.exe -k netsvcs

Причина 3: Брандмауер Windows блокує LanmanServer

Брандмауер Windows може блокувати названі труби навіть тоді, коли вони використовуються лише для міжпроцесорної комунікації на одній машині. Особливо правила домену та локального брандмауера можуть спричинити конфлікт. Дві записи у списку "Дозволені програми брандмауера Windows" вказують на конфлікт. У більшості випадків цю проблему можна вирішити за допомогою вікна "Перевірити стан брандмауера". Якщо в цьому вікні відображається опція встановлення рекомендованих правил брандмауера, труби часто можуть бути розблоковані за допомогою цієї опції. У поєднанні з правилами брандмауера домену іноді необхідно сполучати ПК спочатку з доменом, а потім дозволити службу спільного використання файлів та принтерів.


3
Причина 1) Брандмауер труб впливає лише на віддалений доступ до названих труб. Однак зауважте, що підключення до названої труби за допомогою \\ ім'я машини \ pipename, ймовірно, вважається віддаленим доступом, навіть якщо ім'я машини є локальною машиною.
Гаррі Джонстон

3
Причина 2) Аналогічно, обмін файлами та принтерами потрібен лише для віддаленого доступу до названих труб. Знову ж, \\ ім'я машини \ pipename, ймовірно, вважається віддаленим доступом для цієї мети.
Гаррі Джонстон

Причина 3) Брандмауер Windows не повинен мати можливість блокувати локальні з'єднання, навіть якщо використовується \\ ім’я машини \ pipename. Однак якщо ви перебуваєте в домені і брандмауер Windows сильно неправильно налаштований, можливо, у вас виникли більш поширені проблеми, можливо пов’язані з автентифікацією.
Гаррі Джонстон

@HarryJohnston Який тип автентифікації може бути заблокований? Як ServiceHost.Authenticationописано тут ?
iCantSeeSharp

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