NetBIOS — это сетевой протокол, принадлежащий операционной системе Windows. Имя NetBIOS — это уникальное значение, данное компьютеру. Протокол используется в очень небольших сетях Windows, которые являются только частью рабочей группы. Имя NetBIOS можно изменить в окне свойств системы Windows в любой версии операционной системы. После изменения имени компьютера NetBIOS другие пользователи увидят новое значение в списке доступных компьютеров в сети.
Шаг 1
Нажмите кнопку «Пуск» и выберите «Панель управления». Нажмите ссылку «Производительность и обслуживание», а затем нажмите ссылку «Система». Откроется новое окно со списком текущих системных свойств Windows.
Шаг 2
Нажмите на вкладку «Имя компьютера». Имя NetBIOS текущего компьютера и связь рабочей группы перечислены на этой вкладке.
Шаг 3
Нажмите кнопку «Изменить». Введите новое имя NetBIOS в текстовое поле с именем «Имя компьютера». Нажмите кнопку «ОК».
Шаг 4
Перезагрузите компьютер. Изменения для вашей машины вступят в силу при следующей перезагрузке машины.
Как узнать имя компьютера в локальной сети
Имя компьютера (или NETBIOS-имя, DNS-имя) – это название ПК, которое используется для доступа из локальной сети. С помощью данного имени можно взаимодействовать с компьютером по локальной сети не используя IP-адрес, который может быть трудно запомнить. В этой инструкции мы рассмотрим несколько способов, как узнать и изменить это имя компьютера. Все способы достаточно универсальны и будут работать как в Windows 7, так и в Windows 10.
Как определить имя компьютера с помощью комбинации клавиш Windows-Pause/Break
Самый простой способ узнать имя компьютера в локальной сети, это воспользоваться комбинацией клавиш Win-Pause/Break. Данная комбинация работает в Windows 11, Windows 10 и Windows 7.
Windows 11
Если у вас Windows 11, то после нажатия комбинации клавиш Win-Pause/Break появится окно «Параметры» с разделом настроек «Система — О системе». Здесь в самом верху окна будет указано имя компьютера в локальной сети.
Также рядом расположена кнопка «Переименовать этот ПК» с помощью которой можно изменить данное имя компьютера.
Windows 10
В Windows 10 после нажатия комбинации клавиш Win-Pause/Break появится окно «Параметры» с разделом настроек «Система — О программе». Здесь в блоке «Характеристики устройства» в строке «Имя устройства» указывается имя компьютера в локальной сети.
Также чуть ниже на той же странице настроек есть кнопка «Переименовать этот ПК» для изменения этого имени.
Windows 7
В Windows 7, а также старых версиях Windows 10, после нажатия данной комбинации клавиш Win-Pause/Break появляется окно «Просмотр основных сведений». В этом окне в строке «Имя компьютера» указывается имя компьютера в локальной сети.
Также здесь есть ссылка «Изменить параметры», которая позволяет быстро перейти к окну редактирования имени компьютера.
После нажатия на ссылку «Изменить параметры» открывается окно «Свойства системы». Здесь также указано имя компьютера, а также имя локальной группы. Чуть ниже есть кнопка «Изменить», которая открывает окно для смены имени.
После нажатия на кнопку «Изменить» появится окно «Изменение имени компьютера или домена».
Здесь можно указать новое имя для вашего ПК, а также изменить название домена или рабочей группы.
Как определить имя компьютера по свойствам ярлыка
Еще один не сложный способ определения имени компьютера заключается в использования любого ярлыка на рабочем столе. Для этого нужно кликнуть правой кнопкой мышки по любому ярлыку (нужен именно ярлык, а не файл) и перейти в «Свойства». После этого в свойствах ярлыка нужно открыть вкладку «Подробно» и найти там строчку «Компьютер».
В этой строке будет указано имя компьютера, на котором находится данный ярлык.
Как определить имя компьютера с помощью командной строки
Также вы можете определить имя компьютера с помощью командной строки. Для этого нажмите комбинацию клавиш Windows-R и выполните команду «CMD» либо запустите командную строку любым другим удобным способом.
В открывшемся окне командной строки нужно выполнить команду «hostname», после чего операционная система выведет текущее название системы в локальной сети.
Также через командную строку можно изменить имя компьютера. Для этого запустите CMD с правами администратора и выполните следующую команду:
wmic computersystem where name="%computername%" call rename name="NewName"
Где «NewName» — это новое имя.
Как найти имя компьютера в msinfo32
Msinfo32 – это команда, которую нужно выполнить для того, чтобы открыть окно «Сведения о системе». В этом окне можно получить большое количество информации о текущей конфигурации системы и состоянии Windows. В частности, здесь можно найти имя компьютера в локальной сети.
Итак, для того чтобы воспользоваться данным способом вам нужно нажать комбинацию клавиш Windows-R и выполнить команду «msinfo32». Также вы можете ввести данную команду в поиск в меню «Пуск».
После этого перед вами должно появиться окно «Сведения о системе». Здесь нужно выделить мышкой первый раздел и обратить внимание на информацию в правой части окна.
Тут нужно найти строку «Имя системы», в которой и будет указано имя компьютера.
Как узнать имя компьютера по IP адресу в сети
Если вам нужно узнать имя другого компьютера в локальной сети, то вы можете сделать это по IP адресу. Для этого нужно запустить командную строку и выполнить команду:
ping -a 192.168.1.1
Где «192.168.1.1» — это IP адрес имя которого нужно узнать.
При использовании параметра «-a» система выполнит команду Ping с выводом сетевого имени компьютера.
Автор
Александр Степушин
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице
«Задать вопрос»
и вы обязательно получите ответ.
- Remove From My Forums
-
Вопрос
-
Для приведения имен компьютеров членов домена к единому стандартному именования
Хотелось бы установить FQDN и NetBIOS имена компьютера через групповую политику. Причем хотелось бы задать hostname по одному правилу, а NetBIOS имя по другому правилу (то есть это не не просто 15 первых символов от hostname).
Ответы
-
Не то цитируете
NETDOM RENAMECOMPUTER machine /NewName:new-name
/UserD:user [/PasswordD:[password | *]]
[/UserO:user [/PasswordO:[password | *]]]
[/Force]
[/REBoot[:Time in seconds]]Это должно вполне подойти, можно использовать скрипты или к примеру GPO.
Обновлено: 21.07.2020
Опубликовано: 14.09.2016
В статье представлены распространенные способы смены имени компьютера:
Через графический интерфейс
В Windows 10
Через командную строку
С помощью Powershell
Через реестр
Читайте также
Данные рекомендации подойдут для разных версий операционной системы Windows от XP до 10.
Универсальный через графический интерфейс
Открываем свойства компьютера. Для этого открываем проводник и кликаем правой кнопкой мыши по Компьютер и выбираем Свойства:
… или вводим команду:
control /name microsoft.system
В открывшемся окне в разделе «Имя компьютера, имя домена и параметры рабочей группы» нажимаем Изменить параметры:
В следующем окне на вкладке Имя компьютера нажимаем Изменить:
Вводим имя компьютера:
* если кликнуть по кнопке Дополнительно, мы сможем добавить DNS-суффикс и поменять NetBIOS-имя компьютера.
Нажимаем OK два раза и перезагружаем компьютер.
Графический интерфейс Windows 10
В Windows 10 появился дополнительный вид панели управления. Ее также можно использовать для смены имени компьютера.
Кликаем по Пуск и нажимаем на изображение шестеренки:
Кликаем по Система:
В разделе О системе:
… кликаем по Переименовать этот ПК:
Вводим новое имя и нажимаем Далее:
Перезагружаем компьютер.
Через командную строку
Запускаем командную строку от имени администратора и вводим следующую команду:
> netdom renamecomputer %COMPUTERNAME% /Newname «computername»
* computername — новое имя компьютера
После ввода система запросит подтверждение — отвечаем Y и нажимаем Enter.
Для вступления изменений в силу, перезагружаем компьютер.
С помощью Powershell
Что такое Powershell простыми словами.
Запускаем Powershell от имени администратора и вводим следующую команду:
> netdom renamecomputer «$env:COMPUTERNAME» /Newname «computername»
Как и с командной строкой, система запросит подтверждение операции, на которое отвечаем Y.
После перезагружаем компьютер для завершения операции.
Через реестр
Для изменения компьютера в реестре нам нужно отредактироват два параметра:
- Ветка HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlComputerNameComputerName, параметр ComputerName, значение — имя компьютера.
- Ветка HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters, параметр NV HostName, значение — имя компьютера.
Для внесения изменений можно воспользоваться утилитой regedit или командами:
reg add «HKLMSYSTEMCurrentControlSetControlComputerNameComputerName» /v ComputerName /t REG_SZ /d «Office-3» /f
reg add «HKLMSYSTEMCurrentControlSetServicesTcpipParameters» /v ComputerName /t REG_SZ /d «Office-3» /f
* в данном примере мы задаем имя компьютеру Office-3.
После перезагружаемся.
Читайте также
Создание нового пользователя в Windows 10
Три способа добавить компьютер с Windows к домену
Была ли полезна вам эта инструкция?
Да Нет
Во время установки операционной системы Windows пользователем задаётся имя компьютера, к которому в дальнейшем будут обращаться программы, устройства, соединённые локальной сетью, веб-сервер, FTP и другие сетевые службы. Протокол NetBIOS крайне важен для работы системы, поэтому рекомендуется знать о его устройстве и выполняемых функциях, чтобы лучше понимать, как происходит обмен данными между процессами, приложениями или компьютерами.
Windows использует данный интерфейс в качестве основной системы сетевого ввода-вывода, а также для возможности установки общего доступа к сетевым устройствам и файлам. Пакеты данных передаются по локальной сети через сеансы эталонной модели взаимодействия открытых систем, и через сетевые протоколы приложения могут обмениваться информацией по ним. Простыми словами, данная система является сетевым протоколом, предназначенным для работы в локальных сетях и обмена сведениями, значениями и другими данными внутри них. Начиная с Windows 2000 модуль поддержки NetBIOS через TCP/IP носит название NetBT.
По протоколу программы находят нужные им ресурсы, передают запросы на получение информации либо отдают собственные данные. Сперва открывается сессия с NetBIOS запросом, задаётся IP-адрес, система определяет подходящий порт для проведения конкретного типа операции (служба имён использует порт 137, дейтаграмм – 138, а сессий – 139), происходит обмен пакетами данных, когда поток прекращается – сессия закрывается. Одно сообщение может занимать до 131071 байт или 131 КБ. В одно время может быть установлено несколько уникальных сессий. NetBIOS адрес имеет следующий вид: IP.**.**.**.**, где под звёздочками – IP-адрес, а под IP – тип осуществляемой операции. Протокол использует собственные команды для проведения обмена данными (send, receive, call, remote program load, session status, reset, hang up, cancel и другие), а также особые примитивы для взаимодействия с дейтаграммами (receive datagram, send datagram, receive broadcast datagram, send broadcast datagram). Крайние узлы NetBIOS подразделяются на следующие типы:
- Широковещательные b-узлы.
- P-узлы точка-точка.
- M-узлы смешанного типа.
В зависимости от IP-адреса, используется конкретный вид запроса, к примеру, для осуществления передачи данных узлами P- и M- будет использован NBNS сервер имён и NBDD сервер распределения дейтаграмм.
Службы NetBIOS
Для работы протокол использует NetBIOS-NS (служба имён), NetBIOS-SSN (сеансовая служба) и NetBIOS-DGM (служба рассылки дейтограмм). NS выполняет функцию регистрации и разрешения имён, DGM подходит для передачи данных без установки соединения, а последняя служба, SSN — передаёт пакеты с установлением соединения.
Протокол обеспечивает команды и поддержку следующих служб, предоставляя им доступ к сеансам эталонной модели взаимодействия открытых систем OSI:
- Протокол и адаптер мониторинга и управления;
- Установление и завершение сессии;
- Ненадёжная передача данных без установки соединения;
- Регистрация и проверка имени сети;
- Надёжная ориентированная на соединение передача данных сеанса.
Сперва служба имён осуществляет регистрацию имени приложения в NetBIOS, перед тем как запустить сеанс либо начать распространение дейтаграмм. Используются примитивы «add name» (регистрация имени), «add group name» (запись имени группы NetBIOS), «delete name» (удаление регистрации имени приложения либо группы), «find name» (поиск имени NetBIOS в сети).
Служба рассылки дейтаграмм работает на порту UDP 138 и отвечает за режим обмена без установки соединения. С помощью примитивов «send datagram» (отправка дейтаграммы на удалённое имя), «receive datagram» (переход в режим ожидания получения пакета), «send broadcast datagram» (отправка датаграммы всем зарегистрированным именам из сети NetBIOS), а также «receive broadcast datagram» (ожидание получения пакета данных из сессии отправки широковещательной дейтаграммы) – происходит обмен информацией без установленного соединения.
В сеансовом режиме используется SSN служба (TCP порт 139), которая позволяет установить соединение между двумя компьютерами и обмениваться сообщениями (охват сразу нескольких пакетов), а также отвечающая за обеспечение диагностики и исправления ошибок. Сеанс происходит с использованием данных типов примитивов:
- Call – запуск сеанса;
- Send – передача пакета на другой компьютер;
- Receive – переход в состояние запроса пакета от компьютера на другом конце сеанса;
- Hang up – завершение сеанса;
- Listen – прослушивание попыток запуска сеанса;
- Send No Ack – передача данных без запроса подтверждения на получение от второго участника сессии.
Компьютер, инициирующий сеанс, должен отправить запрос Open, после чего должен запросить запуск сеанса с помощью Call. Принимающий отвечает на каждый передаваемый пакет положительно (ACK), либо отрицательно (NAK). Чтобы сессия была закрыта, компьютер, который не является инициирующим должен отправить запрос Hang Up на завершение и получить подтверждение от инициатора.
Запуск и отключение службы NetworkBIOS
Перед тем, как прекратить работу NetBIOS через TCP/IP, помните, что служба является относительно важной для компьютера и после проведения данной операции не сможет правильно функционировать возможность доступа к сетевому компьютеру по NetBIOS-имени. Если персональный компьютер подключен к сети, не рекомендуется отключать данную службу, чтобы не возникало ошибок.
Пользователи задаются вопросом, как узнать статус службы в Windows 10 (и других выпусках). Для того чтобы это сделать, необходимо вызвать системное приложение «Выполнить» при помощи комбинации Win + R, затем ввести в поле «Запустить» значение «services.msc» и нажать ОК. Для удобного поиска можете отсортировать список в алфавитном порядке, щёлкнув на колонку «Имя». Здесь необходимо найти интересующую службу, в нашем случае это «Модуль поддержки NetBIOS» через TCP/IP». Колонка «Состояние» отображает, запущена ли в текущий момент служба или нет. По умолчанию данный модуль находится в запущенном состоянии, если компьютер подключен к сети.
Чтобы отключить NetBIOS, необходимо щёлкнуть правой кнопкой мыши по соответствующему элементу в списке и выбрать пункт «Свойства» в контекстном меню. В настройках службы NetBIOS следует нажать на кнопку «Остановить», а затем установить тип запуска «Отключена» чуть выше (если нужно запустить, то должно быть выбрано «Вручную» либо «Автоматически). Примените изменения, после чего нажмите «ОК и закройте приложение «Службы». Теперь запустите редактор реестра, воспользовавшись комбинацией Win + R и запросив запуск «regedit.exe». Перейдите в каталог «HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lmhosts» и измените значение атрибута «Start» на «4» (2 – автоматически, 3 – вручную и 4 – отключить, выбирайте в соответствии с желаемым действием) и нажмите ОК, затем нажмите кнопку F5 на клавиатуре. Перезагрузите компьютер и удостоверьтесь, что NetBIOS больше не запускается автоматически.
Надеемся, вы разобрались с принципом работы этого важного сетевого протокола, ранее имевшего статус первой необходимости на каждом компьютере (сейчас это время прошло, теперь используется исключительно соединение Service Message Block или SMB). Если остались какие-либо вопросы, связанные с данной темой, либо возникли проблемы во время отключения сетевого компонента Windows – записывайте свои ответы в комментарии. Не забывайте и про рейтинг, оцените статью с помощью специальной формы.
Содержание
- Решаем проблемы с видимостью сетевого окружения в Windows 7
- Способ 1: Настройка домашней или рабочей группы
- Способ 2: Настройка брандмауэра Windows
- Способ 3: Отключение драйвера в/в тополога канального уровня
- Способ 4: Отключение службы «Тополог канального уровня»
- Способ 5: Активация функции «NetBIOS»
- Способ 6: Настройка идентификации сетей
- Способ 7: Остановка службы «Браузер компьютера»
- Вопросы и ответы
Сетевое окружение — стандартный элемент операционной системы Windows, в котором отображаются все локальные устройства при условии существования такой сети. Благодаря этому графическому элементу пользователи «семерки» могут быстро перемещаться между общими папками, периферией и компьютерами, входящими в домашнюю или корпоративную группу. Однако иногда юзеры сталкиваются с проблемой видимости сетевого окружения, что может быть вызвано разными причинами. Далее мы поговорим о доступных методах исправления этой ситуации.
Точной и единственной причины, почему у юзера возникают проблемы с видимостью сетевого окружения, не существует. Факторы возникновения этой неполадки бывают совершенно разными, однако проявляются они при этом идентично. В связи с этим мы советуем воспользоваться каждым из предложенных способов по порядку — одно или несколько из них точно окажутся эффективными в сложившейся ситуации, от вас требуется только лишь следовать инструкциям, поэтапно выполняя каждое действие.
Способ 1: Настройка домашней или рабочей группы
Первоочередно мы советуем убедиться в том, что домашняя или локальная группа была настроена правильно, так как чаще всего проблемы с сетевым окружением связаны с неверной или неполной конфигурацией. На нашем сайте уже имеется отдельное руководство по этой теме и, чтобы подтвердить или отмести эту причину, ознакомьтесь со статьями по ссылкам ниже. Если этот вариант не принес никаких результатов, переходите к следующим.
Подробнее:
Подключение и настройка локальной сети на Windows 7
Создание «Домашней группы» в Windows 7
Способ 2: Настройка брандмауэра Windows
Стандартный межсетевой экран операционной системы не всегда функционирует предсказуемо, иногда он просто блокирует соединения по непонятным причинам. Отразиться это может и на сетевом окружении, из-за чего необходимо произвести настройку брандмауэра. Если тот находится во включенном режиме, отключите его, а в случае его активной работы на время деактивируйте. Это позволит узнать, действительно ли межсетевой экран как-то связан с рассматриваемой сегодня неполадкой. Всем тем, кто не знает, как управлять работой брандмауэра, пригодится отдельный наш материал.
Подробнее: Настраиваем брандмауэр на компьютере с Windows 7
Способ 3: Отключение драйвера в/в тополога канального уровня
Драйвер ввода/вывода тополога канального уровня отвечает за обнаружение других компьютеров и устройств, использующихся в пределах локальной сети. Дополнительно он определяет и пропускную способность линий. По умолчанию этот компонент находится во включенном состоянии, однако частые сбои в его работе провоцируют возникновение различных ошибок, в том числе и с сетевым окружением, в связи с чем предлагаем отключить его.
- Откройте меню «Пуск» и перейдите в «Панель управления».
- Найдите раздел «Центр управления сетями и общим доступом» и откройте его.
- Воспользуйтесь левой панелью, чтобы зайти в раздел «Изменение параметров адаптера».
- Сделайте двойной щелчок ЛКМ по использующейся сети, чтобы открыть окно ее состояния.
- Кликните по кнопке «Свойства».
- Снимите галочку с пункта «Драйвер в/в тополога канального уровня».
- После этого можно сразу же закрыть это окно.
Осталось только перезапустить сеть, чтобы все настройки вступили в силу, но дополнительно вместе с этим мы советуем выполнить и Способ 2, чтобы исключить все возможные проблемы, связанные с данным драйвером.
Способ 4: Отключение службы «Тополог канального уровня»
Этот вариант напрямую связан с отключенным только что драйвером, поскольку его функцию частично выполняет и отдельная служба. Она тоже иногда вызывает подобные ошибки, что в результате провоцирует надобность ее отключения. Делается это точно так же, как и со всеми остальными службами.
- Откройте «Пуск» и снова перейдите в «Панель управления».
- На этот раз нужен раздел «Администрирование». Чтобы быстрее попасть туда, переключите просмотр на «Значки» в правом верхнем углу.
- Выберите категорию «Службы», сделав клик левой кнопкой мыши по ней.
- Просмотрите весь список и отыщите там «Тополог канального уровня». Дважды щелкните по строке, чтобы открыть свойства службы.
- Установите тип запуска в состояние «Вручную».
- После этого остановите службу, нажав по соответствующей кнопке.
- Дождитесь завершения остановки, а затем закройте окно и перезагрузите сеть.
Способ 5: Активация функции «NetBIOS»
В некоторых случаях при работе через локальную сеть требуется активация протокола под названием «NetBIOS». Он отвечает за передачу информации и налаживание совместимости между устройствами всех типов. Иногда этот параметр не активируется самостоятельно, поэтому пользователю приходится делать это вручную.
- Для осуществления поставленной задачи снова перейдите к списку сетей так как это было показано в третьем способе. Здесь дважды кликните ЛКМ по необходимому подключению, чтобы приступить к его редактированию.
- Переместитесь в раздел свойства, щелкнув по специально отведенной кнопке.
- Отметьте пункт «Протокол Интернета версии 4», а затем нажмите по появившейся кнопке «Свойства».
- Здесь откройте дополнительные параметры.
- Во вкладке «WINS» отметьте маркером пункт «Включить NetBIOS через TCP/IP», а затем можете закрывать данное окно.
После этого в обязательном порядке стоит перезагрузить сеть и абсолютно все компьютеры, входящие в домашнюю или рабочую группу. Если же этот вариант окажется неэффективным, отключите активированную технологию, чтобы избежать возможных проблем с совместимостью в будущем.
Способ 6: Настройка идентификации сетей
Существует один параметр, входящий в локальную политику безопасности, который отвечает за идентификацию сетей. Его основное предназначение заключается в определении типа подключения и в автоматической установке параметров межсетевого экрана. Мы рекомендуем изменить тип расположения через специальное меню, чтобы наладить корректность взаимодействия между всеми компьютерами. Для начала уточним, что сделать эту операцию необходимо абсолютно на всех устройствах, входящих в локальную сеть, которые функционируют под управлением Windows 7.
- Перейдите в «Панель управления», где выберите раздел «Администрирование».
- В открывшемся окне выберите классическое приложение под названием «Локальная политика безопасности».
- После запуска оснастки на левой панели дважды щелкните по директории с названием «Политики диспетчера списка сетей».
- Выберите параметр «Идентификация сетей».
- Установите маркер возле пункта «Общее».
- Примените изменения, а затем можете смело закрывать это окно.
Изменение этого параметра не окажет негативного влияния на работу операционной системы, поэтому его можно не менять даже в том случае, если произведенные действия не принесут должного эффекта.
Способ 7: Остановка службы «Браузер компьютера»
Последний метод, о котором мы хотим поговорить сегодня, заключается в остановке службы «Браузер компьютера». По умолчанию этот параметр выполняет функцию обслуживания ПК в сети и демонстрирует информацию о них определенным программам, требующим соответствующую информацию. Отключение этой службы иногда помогает избавиться от проблемы с видимостью сетевого окружения, но случается это редко, поэтому данный вариант и стоит на последнем месте.
- Перейдите к меню «Администрирование» через «Панель управления» и там выберите «Службы».
- Откройте свойства упомянутого параметра, дважды кликнув по нему.
- Остановите выполнение службы, щелкнув по специально отведенной кнопке.
Этот метод принесет должный эффект только в той ситуации, когда вы уже выполнили предыдущие рекомендации, а как отдельное исправление он оказывается бесполезным практически всегда.
Мы ознакомили вас с семью различными способами исправления неполадки с видимостью сетевого окружения в Windows 7. Как видите, каждый из них требует от пользователя выполнения определенного алгоритма действий. Однако если вы будете придерживаться приведенных инструкций, вся процедура пройдет успешно и без каких-либо дополнительных трудностей.
NetBIOS (Network Basic Input/Output System, Сетевая Базовая Система Ввода/Вывода) — это интерфейс для работы в локальных сетях, разработанный фирмой Sytek для компании IBM в 1983 году. Как гласит RFC1001: NetBIOS defines a software interface not a protocol. There is no «official» NetBIOS service standard. И всё же NetBIOS, по моему скромному мнению, и интерфейс и протокол, поэтому, с вашего позволения, назовем его стандартом (не смотря на то, что официально он так и не был полностью стандартизован). Довольно часто NetBIOS называют сетевым протоколом, но это не совсем корректно, поскольку NetBIOS реализован в Windows сразу в нескольких компонентах операционной системы :: в виде интерфейса в библиотеках пользовательского режима и режима ядра, и в виде модуля в стеке сетевого протокола. Интерфейс NetBIOS представляет из себя стандартный набор для разработки приложений (API), протокол NetBIOS функционирует на транспортном/сеансовом уровне стека и используется для передачи данных, управления сеансом и прочих нужд.
Для чего же в своё время потребовался NetBIOS? Для осуществления возможности взаимодействия станций в небольших (локальных) сетях. Что включает в себя возможность взаимодействия по сети? Это назначение станции сетевого имени, по которому она будет доступна в сети, это возможность найти станцию в сети по её имени, возможность соединиться с ресурсами станции и начать с обмениваться с ними данными. Это и возможность получить список сетевых станций, которые подключены к сегменту сети и многое другое, что может быть определено термином «сетевое взаимодействие».
Особенностью NetBIOS является возможность работы «поверх» основных сетевых протоколов, таких как IPX
, NetBEUI
и TCP/IP
. В своё время реализация протокола NetBIOS в Windows была существенно переработана и ориентирована на использование протокола TCP/IP (как наиболее перспективного), получив новое название “NetBIOS over TCP/IP” (NetBIOS через TCP/IP). NetBIOS через TCP/IP имеет псевдоним NetBT
(NBT). NetBIOS через TCP/IP представляет собой промежуточный уровень между NetBIOS и TCP/IP и создан для того, чтобы приложения на базе NetBIOS могли работать в сетях TCP/IP, то есть предназначен для отображения имен NetBIOS в IP-адреса и, наоборот. Как мы уже упоминали, NetBIOS разрабатывался на заре становления сетевых технологий, и с того времени часто модифицировался, однако параллельно с ним создавались и другие стандарты сетевого взаимодействия, которые существенно опережали NetBIOS по функционалу. На данный момент NetBIOS считается устаревшим стандартом и не рекомендуется к использованию, заместо него, в части организации передачи данных по сети, Microsoft предлагает использовать сокеты (windows sockets), почтовые каналы (mailslots), именованные каналы (named pipes). Для оставшегося функционала, то есть для сервисных целей разработан новый протокол LLMNR (через PNRP):
NetBIOS через TCPIP не поддерживает IPv6. Поэтому для целей организации взаимодействия в локальном сетевом сегменте без участия опорных серверов (DNS/WINS) с использованием IPv4/IPv6 разработан протокол LLMNR/PNRP.
Однако, не смотря на устаревание NetBIOS, поддержка его сохранена и по сей день, код NetBIOS через TCP/IP всё еще присутствует в составе последних версий Windows. Причиной столь огромной популярности стандарта является тот факт, что до определенного времени NetBIOS оставался основным интерфейсом программирования сетевых приложений, и с использованием функций NetBIOS было написано огромное количество разнообразного программного обеспечения.
NetBT является неотъемлемой частью сетевого стека TCP/IP ОС Windows и инсталлируется вместе с протоколом TCP/IP. Части функционала NetBT встречаются в коде библиотек, переменных окружения (%COMPUTERNAME%, %USERDOMAIN%), коде некоторых современных антивирусных продуктов, почтовых серверов, баз данных. NetBIOS до сих пор используется в алгоритме добавления рабочей станции в домен, в процедурах работы с сетевым окружением, подключения сетевых дисков. Об исключительном значении протокола NetBIOS через TCP/IP говорит уже и тот факт, что штатными средствами самой ОС протокол NetBIOS может быть только отключен, но никак не удален. Удаление же его возможно только вместе с удалением протокола TCP/IP.
До определенного времени считалось актуальным высказывание “Сеть Windows не живет без NetBIOS”, но начиная с версии Windows 2000, стало возможным избавиться от использования соединений на основе NetBIOS через TCP/IP и перейти исключительно на соединения по протоколу SMB (Server Message Block). Подобные соединения еще называются TCP/IP Direct Hosting (или DirectSMB). В соединениях на основе SMB отсутствует начальная стадия установки сессии TCP под названием “NetBIOS session setup” и используется единственный порт TCP/445.
SMB — это простой протокол удаленной работы с ресурсами (дисками, устройствами) компьютера. Удивительно, но SMB долгое время довольно тесно взаимодействовал с NetBIOS в части именования и разрешения имен, а так же требовал наличия установленной сессии NetBIOS для взаимодействия между узлами (работал поверх NetBIOS). Теперь же SMB представляет собой самостоятельный протокол, получивший дальнейшее развитие в виде стандарта под названием CIFS, полностью независимого от NetBIOS.
Службы NetBIOS
Далее не будет лишним посмотреть, какие же сетевые порты используются сервисами NetBIOS:
Номер порта | Назначение |
---|---|
137/TCP,UDP |
|
138/TCP,UDP |
|
139/TCP, UDP |
|
Подобная структура отражает требование RFC 1001, RFC 1002, регламентирующее наличие трех базовых сервисов, которые реализуют эмуляцию NetBIOS в системе Windows.
Реализация NetBIOS
NetBIOS через TCPIP реализован в качестве драйвера уровня ядра netbt.sys, поддерживающего специализированный интерфейс TDI
(общий интерфейс для взаимодействия с драйверами, который позволяет сервисам взаимодействовать с транспортными протоколами). Все сервисы, которые работают с NetBT (рабочая станция, сервер, браузер, сетевой вход в систему) используют TDI напрямую. Пользовательские приложения используют стандартный WinAPI (функции, вызовы), поддерживаемый библиотекой netapi32.dll, которая, в свою очередь, является простой «заглушкой» и перенаправляет вызовы к функциям netbios.dll. Функции библиотеки netbios.dll передают запросы к драйверу уровня ядра под названием NetBIOS-эмулятор (%SystemRoot%System32Driversnetbios.sys), который транслирует команды NetBIOS, переданные приложением, в команды TDI-интерфейса.
Принципы работы NetBIOS
Собственно, как же работает NetBIOS? Я попытаюсь дать, пока что, собственное объяснение принципов работы стандарта. Все мы понимаем, что для того, чтобы станции могли взаимодействовать по сети, они должны подчиняться определенным правилам, выполнять предписанные действия на различных этапах работы. Этими этапами являются: заявление о себе (регистрация), попытка взаимодействия (обнаружение имен, установление сеанса, управление сеансом), отключение себя (освобождение имени). Поэтому, все узлы, использующие NetBIOS через TCP/IP, применяют регистрацию, обнаружение и освобождение имен, а так же многие другие методы, предоставляемые стандартом. Давайте рассмотрим их детальнее:
- Регистрация имен. Начиная работу, узел NetBIOS пытается заявить о себе в сети, другими словами — сказать «Я есть узел такой то, с таким то именем». Регистрация имени NetBIOS происходит при помощи широковещательного или направленного только к серверу имен NetBIOS (WINS-сервер) запроса. Если какой-либо узел пробует зарегистрировать уже существующее в сети имя NetBIOS, то либо узел с данным именем, либо сервер имен NetBIOS (WINS-сервер) посылает отказ в регистрации имени, и узел, инициировавший регистрацию, получает в качестве ответа сообщение об ошибке.
- Обнаружение имен. Когда узел уже зарегистрировался, работает в сети, но вдруг хочет связаться с другим узлом, он должен узнать IP-адрес этого узла. Для этого, узел-инициатор посылает запрос на определение имени, содержащий искомое NetBIOS имя. Для запроса используется широковещательный пакет или адресный запрос серверу имен NetBIOS (WINS). Узел, которому принадлежит искомое имя, или WINS-сервер отправляют обратно положительный/отрицательный ответ об определении имени. В результате инициатор получает информацию об IP-адресе целевого узла.
- Освобождение имен. Освобождение имени происходит, если станция, приложение или служба NetBIOS прекращает работу. К примеру, если станция отключается некорректно, то она перестает отвечать на запросы, и другие станции через некоторое время прекращают попытки связаться с ней. Если в сети используется сервер имен NetBIOS, то перед корректным выключением станция посылает ему запрос на удаление информации о всех ресурсах, которые она поддерживала. В таком случае говорят, что имя NetBIOS освобождено, и доступно для использования другими узлами.
- Запуск/завершение сеанса. Вероятно, мы пытались обнаружить сетевое имя не просто так, а с какой-то целью. А что если мы хотим обменяться данными: получить/передать файлы? Для этого нам необходимо установить сеанс связи с целевой станцией.
- Надежная передача данных сеанса. После установления надежного сеанса связи с использованием транспортного протокола TCP, мы начинаем обмен данными. Например, передачу файлов.
- Ненадежная передача данных сеанса. После запроса на разрешение имени, мы начинаем передачу информации с помощью транспортного протокола UDP. Например, поиск имени.
- Возможность мониторинга и диагностики. Позволяет запрашивать статус удаленных и локальных ресурсов.
Разрешение имен в NetBIOS изначально было основано на широковещательных запросах (станция заявляет о себе каждые 60 секунд). Собственно, с самого начала NetBIOS и разрабатывался таким образом, чтобы использовать только широковещательные сообщения для локализации устройств в сети. Это и послужило одной из причин сокращения популярности стандарта, поскольку широковещательные запросы существенно увеличивают объем трафика в сети и являются немаршрутизируемыми. Только значительно позже, для устранения проблем широковещательного шторма и отсутствия маршрутизации запросов, решено было создать выделенный узел, который бы принимал запросы и давал ответы об именах в сети — WINS-сервер.
Для того, чтобы лучше понять логику работы NetBIOS через TCP/IP, давайте немного отступим от основной линии рассуждений, и рассмотрим по-отдельности некоторые сущности стандарта.
Имя NetBIOS
Одной из основных целей разработки NetBIOS являлось создание простого интерфейса, который давал бы возможность пользователям назначать станциям символьные имена вида MyComputer
. Очевидно, что без подобных имен нам сложно обойтись, поскольку именно легкие имена позволяют человеку «узнать» (однозначно идентифицировать) ресурс, к которому он хочет обратиться по сети. Программам то всё-равно, вместо имен они могут использовать любые идентификаторы, однако человеку удобнее работать именно с фонетическими, понятными и легко запоминающимися маркерами — именами. В качестве имени NetBIOS используется простое одноранговое (“плоское”) имя, без какой-либо иерархической структуры (в противоположность DNS). Подобная простота и отсутствие иерархии имени имеют и оборотную сторону — имена должны быть уникальными.
Имя NetBIOS имеет длину 16 байт.
Первые 15 — собственно имя, 16й — тип ресурса или суффикс (значение в диапазоне 00-FF, шестнадцатеричное представление). NetBIOS имя и имя компьютера (hostname) совпадают по первым 15 символам. Хранится это имя в параметре реестра с именем hostname
, который располагается в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters.
С развитием сетевых технологий логическая структура сетей усложнялась, и помимо станций появились такие понятия как «рабочая группа» и «домен». Пришло осознание того, что ресурсы бывают разнотипными, а имя может быть присвоено не только станции. Опираясь на новые данные, было введено понятие «тип ресурса», который предназначался для логического разделения ресурсов по назначению, это позволило присваивать одно и то же имя нескольким ресурсам одновременно.
NetBIOS имя закрепляется не за станцией, как многие привыкли думать, а за ресурсом и только за ним.
Ресурсы динамически регистрируются сначала в операционной системе (в которой ресурс и создается), а затем [при помощи оповещений] распространяются по сети, которой принадлежит станция. Регистрация ресурса происходит в тот момент, когда в операционной системе стартует сервис (читать: приложение), использующий NetBIOS, либо авторизуется пользователь.
Типы ресурсов стандартизованы по классам и имеют следующие значения:
- Уникальное (Unique, U) — к этому имени может быть привязан только один адрес IP;
- Групповое (Group, G) — к этому имени не привязан единственный адрес, имя может содержать множественные IP-адреса; На запрос WINS-клиента об адресе всегда возвращается limited broadcast address 255.255.255.255;
- Группа Интернет (Internet Group, Special Group, I) — к этому имени может быть привязано до 25 адресов; для каждого адреса хранится свой TTL. Используется для управления именами домена в WinNT;
- Доменное имя (Domain Name, D) — к этому имени может быть привязано множество адресов;
Поскольку NetBIOS не использует номера портов, как это делает TCP/IP, адресное пространство имен должно быть способно поддерживать множество имен для каждой системы. К примеру, если на одной станции реализованы файловый сервер, служба Exchange и сервер удаленного доступа, то каждый из этих сервисов должен иметь отличное от других имя, однозначно определяющее сам сервис. Для этой цели авторы NetBIOS придумали понятие суффикса, который фактически является аналогом порта в TCP/IP. Как было указано выше, он занимает последний, 16й байт в имени и однозначно идентифицирует сервис.
Полный перечень типов общих ресурсов NetBIOS
У имен NetBIOS имеется следующий нюанс — все имена длиной менее 15 символов дополняются пробелами (код символа 20
в шестнадцатеричном представлении), а в некоторых случаях символами BE
либо BF
. Поскольку к работе над NetBIOS подключались многие разработчики, то и типов общих ресурсов существует великое множество, однако в таблице я привожу только те типы, которые используются Microsoft.
Уникальное имя (Unique name) | Суффикс | Описание |
---|---|---|
COMPUTERNAME | <00> | Регистрируется сервисом «Рабочая станция» (Workstation). Это NetBIOS-имя станции. Передается в качестве имени источника в запросе на установку NBT-сессии. Позволяет хосту подключаться к сетевым ресурсам. |
COMPUTERNAME | <01> | Регистрируется сервисом Messenger. Не во всех версиях Windows. Передается в качестве имени источника в запросе на установку NBT-сессии сервисом Messenger. |
COMPUTERNAME | <03> | Регистрируется сервисом Messenger. Это имя используется при обмене сообщениями (WinPopup) между хостами. Для этого используется SMB протокол. |
USERNAME | <03> | Регистрируется сервисом Messenger. Используется так же, как и описанное выше правило для COMPUTERNAME<03>, однако адресатом, вероятно, является пользователь. |
COMPUTERNAME | <06> | Регистрируется сервисом RAS Server. |
COMPUTERNAME | <1F> | Регистрируется сервисом NetDDE |
COMPUTERNAME | <20> | Регистрируется сервисом «Сервер» (Server). Позволяет хосту получать запросы на соединения от других узлов с целью подключения к ресурсам станции. Используется SMB протокол. |
COMPUTERNAME | <21> | Регистрируется сервисом RAS Client. |
COMPUTERNAME | <22> | Регистрируется сервисом Exchange Interchange. |
COMPUTERNAME | <23> | Регистрируется сервисом Exchange Store. |
COMPUTERNAME | <24> | Регистрируется сервисом Exchange Directory. |
COMPUTERNAME | <2B> | Регистрируется сервисом Lotus Notes Server. |
COMPUTERNAME | <30> | Регистрируется сервисом Modem Sharing Server. |
COMPUTERNAME | <31> | Регистрируется сервисом Modem Sharing Client. |
COMPUTERNAME | <42> | Регистрируется McAfee Antivirus. |
COMPUTERNAME | <43> | Регистрируется сервисом SMS Client Remote Control. |
COMPUTERNAME | <44> | Регистрируется сервисом SMS Admin Remote Control Tool. |
COMPUTERNAME | <45> | Регистрируется сервисом SMS Client Remote Chat. |
COMPUTERNAME | <46> | Регистрируется сервисом SMS Client Remote Transfer. |
COMPUTERNAME | <4C> | Регистрируется сервисом DEC Pathworks TCPIP Service. |
COMPUTERNAME | <52> | Регистрируется сервисом DEC Pathworks TCPIP Service. |
COMPUTERNAME | <6A> | Регистрируется сервисом Microsoft Exchange IMC. |
COMPUTERNAME | <87> | Регистрируется сервисом Microsoft Exchange MTA. |
COMPUTERNAME | <BE> | Агент Network Monitor. Microsoft’s Network Monitor (NetMon). |
COMPUTERNAME | <BF> | Приложение Network Monitor Client. GUI для Network Monitor (NetMon). |
DOMAINNAME/WORKGROUPNAME | <1B> | Регистрирует станцию как Domain Master Browser. Регистрация суффикса 1B отличает PDC от остальных контроллеров домена. |
DOMAINNAME | <1D> | Регистрирует станцию как Master Browser (зачастую именуется как Local Master Browser). Имя уникально для локального сегмента сети. |
Групповое имя (Group name) | Суффикс | Описание |
DOMAINNAME/WORKGROUPNAME | <00> | Регистрирует станцию как члена рабочей группы или домена. |
DOMAINNAME | <1C> | Регистрирует станцию как контроллер домена. Каждый контроллер домена регистрирует это групповое имя. |
DOMAINNAME/WORKGROUPNAME | <1E> | Регистрируется как групповое имя. Используется при выборах Master Browser. |
Forte_$ND800ZA | <20> | DCA IrmaLan Gateway Server Service |
IRISMULTICAST | <2F> | Lotus Notes. |
IRISNAMESERVER | <33> | Lotus Notes. |
[01h][02h]__MSBROWSE__[02h] | <01> | Master Browser (Local Master Browser). Групповое имя, регистрируемое всеми Master Browser в сети. Используется для поиска других LMB с целью обмена списками просмотра. |
Тип ресурса можно посмотреть командой nbtstat -a <имя_компьютера>
:
Подключение по локальной сети: Адрес IP узла: [192.168.1.199] Код области: [] Таблица NetBIOS-имен удаленных компьютеров Имя Тип Состояние —————————————————- INT1 <00> Уникальный Зарегистрирован WORKGROUP <00> Группа Зарегистрирован INT1 <20> Уникальный Зарегистрирован WORKGROUP <1E> Группа Зарегистрирован WORKGROUP <1D> Уникальный Зарегистрирован ..__MSBROWSE__.<01> Группа Зарегистрирован Адрес платы (MAC) = C8-60-00-E1-0F-FA |
Основное назначение этой команды — показать информацию из локальной таблицы NetBIOS имен для всех интерфейсов, установленных на станции. Имеет алиас — nbtstat -n.
Методы разрешения имени NetBIOS
Очевидно, что тут мы будем говорить о том, какими средствами NetBIOS удается найти соответствие имени и IP-адреса ресурса? Какие же методы определения имен доступны интерфейсу NetBIOS? Сразу обращу ваше внимание на то, что не все из перечисленных методов относятся непосредственно к стандарту NetBIOS. Я считаю, что к NetBIOS относятся только лишь: LMHOSTS, WINS, кеш имен NetBIOS, широковещательный запрос в подсети. Такие же понятия как HOSTS и DNS относятся уже к TCP/IP Direct Hosting. Но поскольку понятия «NetBIOS имя станции» и «имя хоста» довольно тесно взаимосвязаны в современных ОС Windows, то resolver (модуль, разрешающий имена) использует все доступные методы для нахождения соответствия, умело комбинируя разнородные методы определения имен.
- NetBIOS name cache (локальный кеш NetBIOS) — специальная структура в памяти процесса для записи результатов разрешения имен. Время жизни записей — 10 минут. Приложение смотрит в локальном кэше, нет ли там искомого имени. И правда, зачем нам тратить время на другие методы, если может статься, что мы недавно уже обращались к станции, и имя её содержится в локальном кеше. Локальный кеш NetBIOS можно посмотреть командой «nbtstat -r». Некоторые параметры, которые влияют на функционал NetBIOS name cache можно найти в ветке реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters.
- NetBIOS name server (WINS, NBNS). Если сказать иначе, WINS это DNS от Microsoft для NetBIOS. Станции с определенными типами узлов обращаются к WINS-серверу за разрешением имени.
- IP subnet broadcast — широковещательное сообщение в IP-подсети. Станции с определенными типами узлов формируют широковещательный запрос для разрешения имени.
- Локальный LMHOSTS файл. Аналог файла hosts для NetBIOS. Файл, в котором, в специальном формате, хранится таблица соответствия имен NetBIOS IP-адресам. Размещается в директории %SystemRoot%System32DriversEtc.
- Локальный HOSTS файл. Файл, в котором, в специальном формате, хранится таблица соответствия имен хостов (TCP/IP hostname) IP-адресам. Располагается в директории %SystemRoot%System32Driversetc. Этот метод непосредственно не относится к NetBIOS через TCP/IP, а относится уже к TCP/IP Direct Hosting. Если NetBIOS имя найти не удалось, то имя считается как TCP/IP hostname и разрешается уже методами HOSTS+DNS.
- DNS-сервер. Запрос к DNS-серверу. DNS-сервер возвращает запись о соответствии имени хоста IP-адресу.
Тип узла NetBIOS (NodeType)
Поскольку методы регистрации имен в сети у NetBIOS тоже не стояли на месте, и если изначально все сводилось, как мы уже упоминали, к широковещательным запросам, то со временем начали появляться и другие способы зарегистрировать имя (например, с использованием WINS-сервера). В связи с необходимостью разделять логику работы станций, было введено понятие NodeType (NBT-узел) для описания разницы в способах регистрации и распознавания имен. Проще говоря, разные типы узлов имеют свои обособленные алгоритмы разрешения имен в IP-адреса:
- B-node (тип 0x01, широковещательный). Для преобразования имен станций в IP-адреса используется только широковещательные сообщения. Минус этого типа заключается в том, что широковещательные запросы, обычно, режутся маршрутизаторами, поэтому имена могут быть разрешены только в пределах одного сетевого сегмента.
- P-node (тип 0x02, одноранговый). Для разрешения имен используются WINS-сервер (сервер имен NetBIOS). Сессии клиента длятся на три этапа: регистрация имени, обновление имени и освобождение имени. Если WINS не работает, то ни регистрации, ни разрешения не происходит.
- M-node (тип 0x04, смешанный, гибрид B- и P-узлов). Сначала действует как B-node, то есть для разрешения имен используются широковещательные сообщения. Если не получает ответа на широковещательный запрос, то переключается в P-node и использует WINS-сервер.
- H-node (тип 0x08, гибридный, гибрид B- и P-узлов). Сначала пытается стать P-node и действовать через WINS-сервер. Если WINS-сервер не доступен, переключается в B-node и пытается функционировать через широковещательные запросы. Переключается обратно в P-node, как только находит WINS-сервер.
Microsoft использует свою собственные, модифицированные версии типов, так называемые Microsoft-Enhanced B-node, P-node, M-node, H-node. Модификация подразумевает, помимо стандартных алгоритмов, описанных выше, использование файла LMHOSTS, функции API Winsock — gethostbyname()
, которая использует в своей логике обращение к HOSTS/DNS.
Пополнив многообразие сетевых разработок, с 1990 года начал активно внедряться протокол DHCP, и пришлось оптимизировать NetBIOS под работу с ним. Так, если в сети используется DHCP для автоматического назначения IP-адресов, то можно установить метод разрешения имен для DHCP-клиентов. Другими словами, можно назначить тип узла (nodetype), через установку опцию DHCP-сервера 046
WINS/NBT. Либо, в случае отсутствия DHCP-сервера, можно локально задать тип узла в реестре через параметр nodetype
ключа HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetbtParameters.
По умолчанию, при отсутствии WINS-сервера в сети, Windows выставляет тип узла в значение «модифицированный B-node», а при наличии WINS-сервера тип узла выставляется в гибридный, H-node.
Увидеть тип узла можно посредством команды ipconfig /all, в параметре “тип узла”:
Имя компьютера. . . . . . . . . . : int1 Основной DNS-суффикс. . . . . . . : Тип узла. . . . . . . . . . . . . : Гибридный IP-маршрутизация включена . . . . : Нет WINS-прокси включен . . . . . . . : Нет |
Порядок разрешения имен NetBIOS
Это нетривиальный процесс, который во времени претерпевал большое количество изменений, связанных с введением и преобразованием протоколов, ответственных за сетевое взаимодействие. В данный момент сам процесс разрешения имен NetBIOS вызывает большое количество споров. Связано это с тем, что в сети имеется огромное количество различных источников информации, в которых приводятся довольно расплывчатые формулировки, которые зачастую неактуальны или вовсе ошибочны. Я попробую выразить свою точку зрения на вопрос разрешения имен NetBIOS в частности, и шире — на алгоритм разрешения имен в ОС Windows в общем. Надо понимать, что в Windows существуют два параллельных направления разрешения имен — через функции API Windows Sockets и через функции API NetBIOS. Код ОС , то есть приложения, сервисы, драйвера и прочее, могут использовать тот или иной API. Соответственно, сюда относятся и механизмы разрешения имен самой ОС, которые используются при обращении пользователя к сетевым ресурсам стандартными средствами, например, при использовании проводника или средства подключения сетевых дисков. Таким образом, именно от того, какой метод использует тот или иной компонент ОС и зависит, в конечном итоге, алгоритм разрешения имени.
Начиная с Windows 2000, Microsoft существенно изменила порядок разрешения имен. Это было мотивировано разделением SMB и NetBIOS на две независимые ветви кода.
Если приложение использует функции API Winsock
В этом случае, процесс, инициировавший разрешение имени, использует такие функции API Windows Sockets как: getaddressbyname
, gethostbyname
, getnameinfo
, getaddrinfo
, и последовательность разрешения имени, в этом случае, такова:
- Сравнивает искомое имя с собственным. Не я ли это?;
- Проверяется наличие записи об узле в в локальном кеше DNS-резолвера. На этом же этапе проверяются записи, присутствующие в файле hosts (%SystemRoot%System32Driversetc), поскольку они, с определенным интервалом, импортируются в кеш DNS-резолвера;
- Делается запрос к DNS на наличие записи о хосте в зоне;
- Проверяется локальный кеш имен NetBIOS (NetBIOS name cache);
- Опрашивается WINS-сервер;
- Делается широковещательный запрос;
- Проверяется наличие записи в файле LMHOSTS. Файл располагается в директории %SystemRoot%System32Driversetc;
Как мы видим, даже при использовании функций API Winsock, в некоторых случаях, в алгоритме разрешения имени вызываются функции API NetBIOS. То есть, все вышеописанные функции API в своей логике содержат ветвления, которые могут инициировать передачу управления функциям API NetBIOS. Реализовано это с целью сохранить совместимость приложений. Однако, если исходное имя, которое должно быть разрешено:
- Представляет из себя FQDN (Full Qualified Domain Name, полностью уточненное доменное имя), то есть запись вида host.domain.ru.
- Имеет длину более 15 символов.
- Имеет символ «.» в своём составе.
..то попытки разрешить имя с помощью функций API NetBIOS вообще не производится. В таком случае, вышеописанные функции в своем алгоритме по условию не вызывают функций разрешения имен API NetBIOS.
Если же имя короче 16 символов (имеет длину не более 15 символов), то в случае неудачной попытки разрешения имени с помощью HOSTS+DNS, функции API Winsock передают его в API NetBIOS (где оно дополняется пробелами) для разрешения уже логикой NetBIOS.
Если приложение использует функции API NetBIOS
В этом случае, логика разрешения имен кардинально меняется. Сперва вызывается единственная функция API NetBIOS которая имеет одноименное название Netbios
:
UCHAR Netbios( PNCB pncb ); |
Параметром данной функции является указатель на структуру NCB
, в члене ncb_command которой, с целью поиска имени, указывается код команды NCBFINDNAME. В случае ошибки выполнения функции, производится попытка разрешения уже при помощью API Winsock (описан выше).
Последовательность разрешения имен через API NetBIOS в IP-адреса зависит, как мы уже говорили выше, от типа узла.
Например, для Модифицированного H-узла (Enchanced H-node) она следующая:
- Локальный кеш имен NetBIOS;
- WINS-сервер;
- Широковещательный запрос;
- Файл LMHOSTS;
- Локальный кеш DNS. Файл hosts (записи из него включаются в локальный кеш DNS);
- DNS-сервер;
То есть, как мы видим из последовательности, используется сначала логика разрешения имен NetBIOS, а потом уже, если имеется необходимость, вызываются функции API Winsock.
Исходя из всего вышеописанного, довольно сложно составить какой-то обобщенный алгоритм разрешения имен, однако я все же постараюсь это сделать. Для наглядной демонстрации описанной логики я приведу схему, описывающую собственное понимание происходящего. Стоит, однако, отметить, что в зависимости от API, которое используется для разрешения имени, части данной схемы могут меняться местами.
На этой оптимистической ноте я и хотел бы завершить теоретическую часть обзора NetBIOS через TCP/IP. Очевидно, что на данный момент NetBIOS морально устарел и содержит впечатляющее количество недоработок. К примеру, одним из существенных недостатков безопасности NetBIOS является предоставление информации о сетевых сервисах (ресурсах) любому узлу в сети в ответ на типовой запрос, то есть отсутствуют какие бы то ни было критерии разграничения доступа. Вероятно, архитектура NetBIOS уже настолько неоптимальна, что в какой-то момент разработчики MS отказались от её доработки с целью поддержки современных сетевых стандартов. Microsoft, судя по всему, всячески пытается избавиться от протокола, и подтверждением тому служит и тот факт, что был написан аналог — PNRP (LLMNR). В следующих статьям мы познакомимся с такими часто встречающимися на практике примерами, как подключение к ресурсам посредством NetBIOS, построение объектов сетевого окружения через NetBIOS.
Обновлено 31.07.2019
Добрый день! Уважаемые читатели и гости одного из популярных IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами научились интегрировать драйвера Windows в установочный дистрибутив, тем самым вшив свежие драйвера USB 3.0. Сегодня я хочу вам показать все известные мне методы, как переименовать компьютер Windows 10. Вы легко сможете выбрать нужный вам метод, под определенные обстоятельства и изменить имя компьютера в своей Windows 10.
Нужно ли менять имя компьютера?
Когда вы устанавливаете Windows 10, то у вас после всех дополнительных настроек будет автоматически сформировано имя вашего ПК. Оно будет иметь кракозяброподобный вид, что-то вроде этого DESCTOP-193QATJ
Вроде бы ничего страшного, и для большинства людей это ни на что не влияет, так как они и не вспоминают об этом. Но так как компьютеры все больше и больше завязываются с всевозможными внешними сервисами, количество устройств в рядовой семье и доме становится все больше и больше, что ставит вопрос более удобного обнаружения, запоминания имени компьютера более остро. Простая ситуация вы хотите постримить видео с компьютера на телевизор, естественно по локальной сети, или хотите расшарить папку с файлами в вашей домашней или локальной сети, вариантов много, и логично, что использование красивого и легко запоминаемого имени лучше, нежели DESCTOP-193QATJ.
Если мы говорим про доменную сеть на предприятии, то там вообще более жесткие правила и есть специальные стандарты по именованию серверов, рабочих станций, точек доступа. У каждой компании это своя система, и призвана она для упрощения администрирования, со стороны инженеров, которые легко могут понимать, место расположение рабочей станции, принадлежность ее к отделу и многое другое, так же и с серверами.
Методы смены имени компьютера
Существует как минимум четыре способа позволяющие вам изменить имя устройства в системе Windows 10:
- Через параметры Windows 10
- С использованием окна «Изменение имени компьютера или домена»
- Через командную строку
- Через командлеты PowerShell
Изменение имени в свойствах системы
Это классический метод переименовать компьютер Windows 10, да и вообще любую систему Windows, он будет работать везде, разве, что кроме Core версии. Чтобы это реализовать, нам необходимо попасть в настройку «Система». Самый быстрый метод это сделать, это нажать Windows + R и ввести в окне «Выполнить» вот такой код control /name Microsoft.System в итоге у вас появится вот такое окно.
в котором нужно будет нажать «Изменить параметры», тем самым вызвав окно «Свойства системы», где вы и можете производить смену имени устройства.
Кстати открыть сразу окно со свойствами системы можно так же из окна выполнить, вбив там sysdm.cpl
Еще одним метод открыть окошко свойств системы, это щелкнуть по значку «Этот компьютер» правым кликом и выбрать из контекстного меню пункт «Свойства».
В окне свойств системы находясь на вкладке «Имя компьютера» нажмите кнопку «Изменить».
В итоге это откроет окно «Изменение имени компьютера или домена». В соответствующем поле задаем новое имя устройства и нажимаем «OK». В моем примере это будет имя pyatilistnik01
Вас уведомят, что для того чтобы все настройки применились вам необходимо перезагрузить компьютер, с чем мы и соглашаемся.
Кстати вы можете отложить перезагрузку и выполнить ее тогда. когда вам необходимо.
Хочу отметить, что по умолчанию в Windows есть ограничение на количество символов в имени и оно равно 15 символам, более подробно можете почитать на Microsoft https://support.microsoft.com/ru-ru/help/909264/naming-conventions-in-active-directory-for-computers-domains-sites-and
Вот так вот будет выглядеть ошибка при превышении количества символов в имени компьютера Windows 10:
[info]Длина имени NetBIOS для этого компьютера ограничена 15 байтами, в этом случае это 15 символов. Имя NteBIOS будет укорочено до, что может вызывать конфликт при разрешении имен NetBIOS[/info]
Изменение имени компьютера в параметрах Windows 10
Windows 10 принесла и альтернативный, графический метод изменения имени устройства, который с каждым новым выпуском все более настаивающе просит вас использовать именно его. Суть метода заключается в использовании параметров Windows. Чтобы вам их открыть, вы можете щелкнуть правым кликом мыши по кнопке «Пуск» и выбрать пункт «система».
У вас откроется окно «О системе», где вы обнаружите соответствующий пункт, так в Windows 1903 он выглядит вот так, тут чтобы переименовать имя компьютера достаточно нажать кнопку «Переименовать этот ПК»
Если вы используете версию Windows 10 по старее, то у вас окно может выглядеть вот так, где кнопка уже называется «Переименование компьютера»
Кстати попасть в окно «О системе» вы можете и вот таким методом, нажать одновременно Windows + I или в кнопке пуск «Параметры». После чего выбрать пункт «система»
Далее у вас откроется окно «Переименуйте компьютер». в соответствующее поле вбиваем нужное значение, помним про лимит в 15 символов.
Чтобы изменения вступили в силу, перезагружаем систему.
Как переименовать имя компьютера в windows 10 через PowerShell
Одним из удобных методов переименовать имя хоста в Windows 10 является оболочка PowerShell, в которой присутствует командлет Rename-Computer.
Командой hostname я вывожу текущее имя моего хоста, в моем примере это w10-cl01.
Rename-Computer -NewName W10-cl0406
Все изменения будут применены после перезагрузки вашей системы, можно тут же ввести Restart-Computer. Как видим все получилось и мы имеем новое имя.

Как изменить имя компьютера windows 10 через командную строку
Командная строка это наверное самый старый и востребованный инструмент. который используют системные администраторы и продвинутые пользователи, PowerShell пока не всесилен. Чтобы воспользоваться cmd введите в нем команду:
wmic computersystem where name=»%computername%» call rename name=»w10-cl01″
Перезагрузить можете тут же через командную строку выполнив shutdown -r -t 0. В итоге вижу, что успешно выполнилось и нужное имя хоста задано.
Как изменить имя компьютера через реестр Windows
Если вы хотите экзотики и легкого мазохизма, то можете попробовать выполнить изменение имени вашей системы через реестр Windows. Для этого вам придется воспользоваться утилитами поиска по нему, о которых я уже рассказывал. Я буду использовать Registry Finder, нас будут интересовать две ветки:
- HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl ComputerNameComputerName
- HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl ComputerNameActiveComputerName
- HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices TcpipParametersHostname и NV Hostname
Вообще ключей содержащих имя вашего компьютера очень много, но менять нужно исключительно те два, что я описал выше, после манипуляций обязательная перезагрузка системы.
Проверяю результат и вижу, то что нужно W10-CL0177.
Переименовывание Windows 10 через утилиту Netdom
Netdom — это серверная утилита командной строки, через которую я вам ранее показывал, как задавать имя для Windows Server, если вы ее отдельно скачаете в вашу Windows 10, то так же сможете выполнить переименовывание системы, синтаксис там такой:
netdom renamecomputer cinquefoil /Newname новое имя
Вот такие вот рабочие и главное разнообразные методы, позволяющие вам задать нужное имя вашему компьютеру или ноутбуку. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Содержание материала
- Вступление
- Видео
- : Свойства ярлыка
- Способы определения
- Специальные программы
- «Командная строка»
- Изменение
- Как определить имя компьютера с помощью командной строки
- Как узнать имя компьютера?
- Визуально
- Панель управления
- Свойства системы
Вступление
Каждый компьютер имеет название. Каждый раз, когда вы устанавливаете Windows или создаёте новую учётную запись пользователя, вы можете наименовать ПК или аккаунт. Особенно важным этот момент является при организации сети, будь то на предприятии, или же у себя дома. В таком случае гораздо удобнее будет, если каждая машина будет иметь название, которое легко распознать. Также возможна ситуация, когда из-за чьей-то неосторожности несколько серверов в сети называются одинаково, из-за чего возникают конфликты в работе.
В этой статье мы расскажем, как отредактировать вашу учетную запись
Система автоматически присваивает себе название, но очень часто оно состоит из набора цифр и букв, поэтому разобраться с этим может быть очень непросто, если их несколько. Этот недостаток можно убрать очень просто. Кроме этого, иногда может потребоваться переименовать пользователя без переустановки ОС Windows и многих дополнительных манипуляций. В этой статье мы покажем, как узнать изменить имя компьютера и пользователя, а также научимся их изменять.
: Свойства ярлыка
Иногда название компьютера необходимо для предоставления доступа конкретным юзерам, изменения владельца или указания пути при передаче файлов в пределах локальной сети. Тогда можно открыть свойства любого ярлыка, который есть под рукой, чтобы узнать часть пути, содержащую имя текущего ПК.
- Найдите какой-нибудь ярлык и кликните по нему правой кнопкой мыши. Из появившегося контекстного меню выберите пункт «Свойства».
- Перейдите на вкладку «Подробно».
- Вы увидите строки «Владелец» и «Компьютер», которые и начинаются с имени текущего устройства.
Видео
Способы определения
Как же можно узнать IP-адрес компьютера в локальной сети по имени, а также некоторые важные характеристики? Для этого существует несколько способов:
- Нажать «Пуск» — «Выполнить» (или «Win» + «R»), ввести в открывшемся окошке «msinfo32». Откроются «Сведения о системе», в которых будет и название системы;
- Нажать правой кнопкой мыши по рабочему столу и выбрать «Свойства». Прокрутив открывшееся окошко вниз, можно найти полное наименование;
- Нажать правой кнопкой по любому ярлыку на рабочем столе (не по папке или файлу), затем нажать «Свойства» — «Подробнее». Внизу в окошке будет указано наименование.
Специальные программы
Как посмотреть IP-адреса всех компьютеров в локальной сети Существует немало специальных программ, которые запускают сканирование локальной сети интернет и помогают находить имена всех входящих в нее компьютеров. Они работают с разными ОС: Windows, Ubuntu от Linux и другими.
Одной из таких программ является MyLanViewer. При сканировании все ПК отображаются в удобном виде: показывают их имена, IP и MAC адреса, общие файлы и другие характеристики.
Также с помощью MyLanViewer можно отслеживать изменения состояния компьютеров и управлять ими.
Загрузить софт можно с официального сайта. Затем необходимо установить программу и запустить ее. Далее потребуется:
- Зайти во вкладку «Scanning», кликнуть по кнопке «Start Fast Scanning»;
- Откроется список, в нем необходимо выбрать строчку со словами «Your Computer» и нажать на плюсик;
- Откроется новый подсписок. Указанное наименование компьютера будет в строке с надписью «Host Name».
Важно! Программа платная, бесплатная версия доступна первые 15 дней.
«Командная строка»
Этот способ позволит узнать наименование компьютера, его идентификатор, IP и другие данные. Посмотреть его можно в несколько шагов:
- Нужно открыть «Пуск» — «Командная строка»;
Важно! Вместо «Командной строки» может быть пункт «Windows PowerShell».
- Откроется отдельное окошко, в котором будет строка «Users» и название. В ее конце необходимо добавить «>ipconfig», затем нажать «enter»;
- Откроются блоки подключения по локальной сети, там необходимо найти «IPv4-адрес» и скопировать значение;
- В строку «C:Users» после наименования нужно вписать «>tracert [пробел] [IP-адрес, который был скопирован]»;
- После сроки «Трассировка маршрута с максимальным числом прыжков» в конце строки будет указано название.
Чтобы получить дополнительную информацию, в строке «C:Users» нужно вписать команду «>nbtstat -a [пробел] [IP-адрес, который был скопирован]». Все данные будут размещены в таблице «NetBIOS-имен удаленных компьютеров»: название, состояние, тип.
Узнать название компьютера в сети можно через команду «>hostname» в строке «C:Users».
Изменение
Самый простой способ узнать и изменить название следующий:
- Нужно нажать правой кнопкой «Пуск» — «Система»;
- Название будет в строке «Полное имя»;
- Чтобы поменять его, нужно кликнуть по «Изменить параметры» — «Имя компьютера», после чего указать новое. Тут же можно изменить дополнительные данные, однако важно помнить, что внесенные изменения могут повлиять на доступ к сети и ее ресурсам.
Как определить имя компьютера с помощью командной строки
Также вы можете определить имя компьютера с помощью командной строки. Для этого нажмите комбинацию клавиш Windows-R и выполните команду «CMD» либо запустите командную строку любым другим удобным способом.
В открывшемся окне командной строки нужно выполнить команду «hostname», после чего операционная система выведет текущее название системы в локальной сети.
Также через командную строку можно изменить имя компьютера. Для этого запустите CMD с правами администратора и выполните следующую команду:
Где «NewName» — это новое имя.
Как узнать имя компьютера?
Так же как и ip адрес, иногда бывает нужна информация о имени компьютера, рассмотрим способы, чтобы его узнать.
1. Первый способ:
Нажимаем пуск — выполнить (или клавиши Win-R).
Вводим msinfo32 и нажимаем enter.
В открывшемся окне, видим имя компьютера. Так же тут отображаются и другие параметры, которые возможно вам пригодятся.
2. Второй способ:
Узнать имя компьютера можно и более легким способом. Нажимаем правой кнопкой мыши по моему компьютеру и выбираем свойство.
Чуть ниже будет имя компьютера. Тут отображается и полное имя, а так же отобразится ваша рабочая группа или домен, если компьютер в нем.
3. Третий способ:
Нажимаем правой кнопкой мыши по любому ярлыку выбираем свойство, далее вкладка подробнее. Внизу можно узнать имя компьютера. Я например взял ярлык от любимого браузера оперы.
4. Четвертый способ:
Открываем командную строку (в пуске или в команде выполнить пишем cmd, потом enter).
В ней вводим hostname. Так же получим результат.
5. Пятый способ:
Можно узнать имя компьютера с помощью программы SIW.
По мимо этого эта программа небольшого размера и имеет много функций! Для своего размера, программа умеет делать очень многое. Она покажет абсолютно всю информацию о вашей системе.
Визуально
Найти название ноутбука и посмотреть модель можно на его упаковочной коробке и в документах. Если коробка у вас не сохранилась, то гарантийный талон скорее всего остался – в нем вы и найдете нужные сведения.
Если документов под рукой нет, верный способ, как узнать серийный номер вашего ноутбука – найти на нем фирменную наклейку производителя. Она может располагаться на передней панели рядом с клавиатурой или на задней части.
Если информация на наклейке не читается, узнать марку поможет аккумулятор устройства. Отключите ноут, разверните его и достаньте батарею, открыв защелки по краям. Нужные сведения могут располагаться на отсеке под аккумулятором или прямо на корпусе батареи.
Панель управления
Подходит только для ситуаций, когда вы обладаете администраторскими привилегиями. Обладает тем же недостатком, что и предыдущий метод – текущий аккаунт никак не обозначается в списке.
1. Запустите Панель управления (через поисковую строку, например).
2. Переключите вид её элементов на «Крупные значки».
4. Кликните «Управление другой учётной записью» (для выполнения действия нужны права администратора).
Свойства системы
На рабочем столе найдите значок «Компьютер» (или в меню «Пуск»), нажмите на него правой клавишей мыши, после чего появится контекстное меню. Нажмите пункт «Свойства».
Откроется окно «Система». В нижней части окна указано имя компьютера.