В одной из предыдущих статей я рассказывал о некоторых изменениях в домене Windows 2000, произошедших после удаления протокола NetBT. Для эксперимента на машинах Windows 2000 были вручную настроены параметры стека протоколов TCP/IP с целью отключения NetBIOS – операция весьма трудоемкая. Попробую объяснить, как для достижения той же самой цели можно воспользоваться DHCP. Сначала я опишу процедуру, шаг за шагом, а затем поясню, что происходит "за кадром".
Итак, для начала следует открыть в MMC оснастку DHCP. Под значком сервера DHCP виден каталог, представляющий область действия DHCP (DHCP scope). Если сервер обеспечивает несколько таких областей, то и каталогов может быть несколько. В области действия нужно открыть контекстное меню каталога Scope Options и выбрать Configure Options. Или, как вариант, если нужно отключить NetBT во всех областях действия, следует открыть контекстное меню каталога Server Options, расположенного ниже каталога самого сервера, после чего выбрать Configure Options. Если пункт Configure Options недоступен, необходимо открыть контекстное меню каталога Options или Server Options, щелкнуть левой кнопкой мыши, и параметры Configure Options станут активными.
В окне Scope Options имеется две вкладки: General и Advanced. Перейдите на Advanced. На вкладке видны два выпадающих списка, озаглавленных User class и Vendor class. Для User class следует установить Default User Class. Для Vendor class нужно выбрать Microsoft Windows 2000 Options. В зоне Available Options следует выбрать Microsoft Disable NetBIOS. В текстовом поле Data Entry/Long требуется набрать 0x2, затем щелкнуть Apply и закрыть все оставшиеся окна. Теперь необходимо перейти к станции Windows 2000, которая получает свой IP-адрес от сервера DHCP, открыть окно командной строки и набрать:
ipconfig /renew
ipconfig /all
Предположим, что система изначально была настроена сервером DHCP на использование протокола NetBT (что является параметром по умолчанию). Теперь посмотрим на результат использования команды Ipconfig /all: NetBIOS Over Tcpip....Disabled.
Что же произошло на самом деле? DHCP и все его параметры являются стандартными для всех операционных систем. Но разработчики Microsoft, так же как и остальные производители, хотели бы иметь возможность позволить клиенту выйти за пределы стандартных возможностей DHCP. Особенности конфигурации клиента позволяют администратору сообщить серверу DHCP нечто вроде: "Если от клиента будут получены такие-то параметры, выполнить то-то".
Класс поставщика (vendor class) – это характеристика объекта, которую поставщик встраивает в операционную систему. Как показывает практика, изменить или даже просто просмотреть системные параметры классов поставщика нельзя. Вместе с тем, управлять классами пользователей (user class) можно, с помощью командной строки:
ipconfig /setclassid *
Предположим, например, что в тестовой лаборатории проведен эксперимент с отключением NetBT и требуется отключить NetBT только для компьютеров этой лаборатории. В такой ситуации необходимо перейти к серверу DHCP и описать новый класс пользователей labcomputers: открыть контекстное меню иконки сервера и выбрать Define User Classes.
Затем нужно набрать Lab Computers в поле Display name, после чего набрать labcomputers в правой части поля ID. И, наконец, следует установить параметр Microsoft Disable NetBIOS (см. выше, т. е. в данном случае классом поставщика является Microsoft Windows 2000 Options, а классом пользователя -- Lab Computers). После чего на каждой станции тестовой лаборатории необходимо открыть окно командной строки и набрать:
ipconfig /setclassid * labcomputers
Орфография и регистр написания класса должны соответствовать введенному значению ID, которое в момент создания присваивается классу пользователя.
Далее следует выполнить команду Ipconfig /renew на станциях сети и тестовой лаборатории; нужно иметь в виду, что NetBIOS отключен только для компьютеров лаборатории. Небольшое замечание: поддержка пользовательского класса в Windows 2000 выглядит не очень-то надежной. Так, например, иногда параметр /setclassid не приводит к перезаписи существующего класса пользователя, если предварительно не ввести команду:
ipconfig /release
Более того, команда
ipconfig /showclassid *
выводит перечень классов пользователя. Однако иногда система выдает сообщение, что никаких классов пользователя нет. А если после этого набрать
ipconfig /all
то в результате все классы пользователя будут представлены. Так что прежде, чем полагаться на сообщения команды с параметром /setclassid, стоит немного поэкспериментировать.
Конечно, подобные недоразумения возникают только при работе с классами пользователя. Описанный выше несложный прием, основанный на использовании особенностей класса поставщика, при отключении NetBT на станциях Windows 2000 работает безотказно.
Марк Минаси - редактор Windows NT Magazine, имеет сертификат MCSE; является автором книги «Mastering Windows NT Server 4.0» (издательство Sybex). С ним можно связаться по адресу: mark@minasi.com.