Иван Коробко

PowerShell. Определяем имя текущего домена

При подключении к каталогу Active Directory первый шаг – определение имени текущего домена. Для этого используется виртуальный объект RootDSE.

PowerShell позиционируется компанией Microsoft как скриптовый язык, поддерживающий библиотеки.Net Framewok и призванный заменить существующие VBScript и JScript. Принципиальное отличие PowerShell от своих предшественников – поддержка объектно-ориентированного программирования.

Framework – с помощью библиотеки System.DirectoryServices.

Поскольку PowerShell в первую очередь ориентирован на работу с.NET Framework, то администраторам придется узнать основы программирования в Visual Studio в облегченном варианте.

Способы подключения к Active Directory

Для доступа к каталогу Active Directory используется один из двух провайдеров: WinNT или LDAP. Первый из них использовался в доменах Windows NT и в настоящее время используется для совместимости. Основным протоколом доступа к Active Directory является LDAP. В связи с этим провайдер WinNT рассматриваться не будет.

Виртуальный каталог RootDSE

Виртуальный объект RootDSE является точкой входа в любой домен, который содержит информацию о домене в целом, доступных пространствах имен, поддерживаемой версии LDAP и др. Первоначально объект RootDSE был определен в RFC 2251 как часть спецификации LDAP версии 3.

Для подключения к RootDSE используется бессерверное подключение. Чтобы определить имя домена, используется локатор контроллера домена, который находится на каждом контроллере. Доступ к объекту осуществляется анонимно.

Определение имени текущего домена

На практике виртуальный каталог RootDSE используется для определения имени текущего домена, а также косвенным образом для определения принадлежности сервера к тому или иному сайту.

Как известно, существуют три варианта обозначения имени домена:

  • RDN (Relative Distinguished Name) – относительное уникальное имя, например DC=ISLAND,DC=RU;
  • FQDN (Fully Qualified Domain Name) – полное доменное имя или DNS-имя, в котором компоненты разделены точкой, например ISLAND.RU;
  • NetBIOS-имя – обычно первая часть DNS-имени домена, например ISLAND.

На практике для управления объектами Active Directory с помощью провайдера LDAP используется имя домена, записанное в RDN-формате. Домен имеет древовидную структуру, в которой доступны несколько пространств имен. Каждое из них имеет свою точку входа:

  • defaultNamingContext. Описываемое этим параметром пространство имен используется для управления учетными записями пользователей, групп, контейнеров и других объектов в оснастке Active Directory Users and Computers.
  • sсhemaNamingContext. Данным параметром описывается местоположение схемы домена.
  • configurationNamingContext. Содержит RDN-путь к разделу, содержащему путь к конфигурации леса текущего домена.
  • rootDomainNamingContext. Значением параметра является RDN-путь к корню домена (домен, который был создан первым в лесу).

Имя текущего домена является значением параметра defaultNamingContext. Поскольку PowerShell представляет собой нечто среднее между Visual Studio и VBScript, то рассмотрим управление объектом RootDSE с помощью трех языков программирования (VB.NET, VBScript и PowerShell), чтобы наглядно показать все преимущества PowerShell.

Удаленное подключение к каталогу Active Directory (провайдер LDAP) обеспечивается с помощью Active Directory Services Interface (ADSI). В VBScript для этого используется функция GetObject(), в качестве аргумента которой фигурирует путь к объекту. В PowerShell для решения идентичной задачи вместо функции GetObject() в квадратных скобках указывается ключевое слово ADSI, а в кавычках, следующих далее, – путь к объекту.

Определение RDN-имени текущего домена с помощью виртуального объекта RootDSE состоит из двух этапов. Первый этап – получение доступа к RootDSE, второй – чтение строкового значения параметра defaultNamingContext. На языке VBScript для этого используется функция GetObject(), аргументом которой является путь к виртуальному объекту: LDAP://RootDSE, и чтение значения с помощью функции GET, аргументом которой в свою очередь является имя параметра (см. листинг 1).

Листинг 1. Определение RDN-имени домена (VBScript)

Set obj = GetObject("LDAP://rootDSE")

domain = obj.Get("defaultNamingContext")

MsgBox domain

Эту же операцию в VB.NET можно осуществить двумя способами:

  1. с помощью COM-объекта. Так же как и в VBScript, осуществляется вызов функции GetObject() и с помощью метода GET – чтение значения параметра defaultNamingContext;
  2. с помощью класса DirectoryEntry, входящего в состав библиотеки Directory Services .Net Framework (см. листинг 2).

Первый способ рассматриваться не будет, поскольку его скорость работы по сравнению со вторым оставляет желать лучшего.

Для реализации второго способа необходимо к созданному в Visual Studio проекту подключить библиотеку System.DirectoryServices (см. рисунок).

Листинг 2. Определение RDN-имени домена (VB.NET)

Imports System.DirectoryServices

Dim obj As New DirectoryEntry("LDAP://RootDSE")

Dim domain As String = obj.Properties("defaultNamingContext").Value

MsgBox (domain)

Несмотря на то что PowerShell поддерживает COM-объекты, рекомендуется отдать предпочтение библиотекам.NET Framework, поскольку скорость работы сценария в этом случае увеличится. Для получения имени домена все так же используется библиотека System.DirectoryServices, однако ее нет необходимости подключать, поскольку многие популярные библиотеки сразу доступны после запуска оболочки PowerShell. Листинг сценария очень похож на листинг VB.NET (см. листинг 3).

Листинг 3. Определение RDN-имени домена (VB.NET)

$obj="LDAP://RootDSE"

$domain=$obj.defaultNamingContext

$domain

Обратите внимание: все имена переменных в PowerShell начинаются с символа доллара ($).

Как видно, листинг по своему объему сопоставим с листингом на VBScript, а по скорости работы – с VB.NET.

Заключение

После того как определено имя текущего домена, вы получаете доступ ко всему каталогу Active Directory. Степень дозволенности определяется правами, выданными системным администратором. В общем случае доступны поиск объектов, на которые есть соответствующие разрешения, и чтение их свойств.

  1. RFC2251 – Lightweight Directory Access Protocol (v3) – http://www.faqs.org/rfcs/rfc2251.html .
В Linux имя хоста используется многими сервисами и утилитами. Если имя хоста задано неправильно, то вы будете постоянно получать сообщения об ошибках и предупреждения. Всё зависит от того, как вы используете операционную систему. Если это обычный домашний компьютер, личный ноутбук, то можно задать любое имя и игнорировать ошибки. А если вы используете компьютер в качестве сервера, то очень важно правильно задать имя хоста (hostname).
Вот несколько причин настроить имя хоста:
  • Имя хоста отображается в подсказке Bash, сразу после символа @. Так намного проще понять на каком сервере вы залогинены.
  • MTA (message transfer agent) используют имя хоста при отправке писем (в зависимости от конфигурации MTA).

В чём разница между доменным именем и именем хоста?

Как ни странно, это не такой простой вопрос как может показаться на первый взгляд. Значение некоторых терминов может меняться в зависимости от контекста. Давайте начнем с доменного имени . Если вы знаете, как работают системы доменных имен (DNS), то вы знаете что такое доменное имя. Система доменных имен хранит запись типа A или AAAA, запись является соответсвием между доменным именем и IP-адресом. То есть, когда говорят о веб-сайте, под доменным именем обычно имеют в виду его адрес (например, "www.сайт").
Имя хоста - это символическое имя, назначенное устройству, подключенному к сети, которое может быть использовано для организации доступа к этому устройству. А какое же имя писать в качестве hostname? Здесь всё запутано, в документации к разным дистрибутивам Linux можно увидеть противоположные рекомендации . Но большинство участников дискуссий сходятся во мнении, что в качестве hostname лучше указывать короткое имя, а в файле /etc/hosts сначала следует писать доменные имена, а потом уже имя хоста.
Стоит ещё упомянуть термин Fully Qualified Domain Name (с англ. "полностью определённое имя домена"). FQDN получается если к имени хоста присоединить имя родительского домена. К примеру, есть сервер с Apache, ему назначено имя хоста websrv1. И есть сервер с базами данных, ему назначено имя dbsrv. И пусть родительским доменом для них будет example.org. Тогда полностью определенными доменными именами будут websrv1.example.org и dbsrv.example.org.
Так в чем же разница между доменным именем и именем хоста? У меня нет четкого ответа, но можно сказать, что имя хоста может зависеть от доменного имени. Наверно, можно сказать, что FQDN должно быть равно доменному имени. То есть если у вас есть сайт www.example.org, то hostname сервера может быть равен www. И в обратную сторону это правило тоже должно работать. То есть если вы в качестве имени хоста используете не www, а websrv1, то стоит добавить соответсвующую запись в DNS. При этом DNS-сервер может эту запись не распространять за пределы своей подсети, это может быть DNS-сервер для внутренних нужд.

Настройка имени хоста в Ubuntu

Есть в Linux специальная команда hostname, если вызвать её без аргументов, то она выведет текущее имя хоста.
Чтобы изменить имя хоста, передайте новое имя в качестве аргумента:
  1. hostname web-srv-1
Новое имя хоста будет активно сразу после выполнения, но после перезагрузки будет восстановлено имя из файла /etc/hostname. Поэтому нужно изменить ещё и файл hostname. В других статьях пишут, что надо перезапустить сервис hostname, но в моей Ubuntu 14.04 такого сервиса нет. Так что я просто перезагрую операционную систему. Кстати, в Ubuntu есть специальная утилитка, которая меняет и текущее значение hostname и файл /etc/hostname. Называется hostnamectl. Если вызвать её без аргументов, то кроме имени хоста она покажет ещё и версию Ubuntu, версию ядра, архитектуру и тип компьютера. А чтобы установить доменное имя, нужно выполнить команду:
  1. hostnamectl set-hostname web-srv-1
После этого необходимо произвести изменения в файле /etc/hosts. IP-адрес 127.0.1.1 должен соответствовать новому имени хоста.
  1. 127.0.1.1 web-srv-1
И для завершения настройки необходимо перезапустить сеть или перезагрузить операционную систему.

Автоматизированная настройка имени хоста с помощью Fabric

Если вы не знаете, что такое Fabric, то вот документация . Я же просто приведу код функции, с помощью которой я настраиваю имя хоста.
  1. def conf_hostname (hostname , domain = None ):
  2. fqdn = hostname if domain is None else hostname + "." + domain
  3. sudo ("hostname %s " % hostname )
  4. sudo ("echo " %s " > /etc/hostname" % hostname )
  5. fabfiles . sed ("/etc/hosts" , "^(127\.0\.1\.1\s+)[-a-z0-9]+" , " \\ 1 %s %s " % (fqdn , hostname ), use_sudo = True )
  6. sudo ("reboot" )
  7. time . sleep (20 )

В этой статье мы поясним принципы создания и управления FQDN именем сервера 3CX. Это поможет вам лучше спланировать инсталляцию системы и избежать многих проблем в будущем.


Как вы, возможно уже знаете, при первоначальной инсталляции 3CX v15 ваш лицензионный ключ привязывается к FQDN имени, выбранном администратором в мастере первоначальной конфигурации. Поэтому продумайте удобное FQDN имя еще до начала установки!

FQDN имя от компании 3CX

Начиная с 3CX v15, при условии, что у вас активна подписка на обновления , вы можете воспользоваться DNS сервером 3CX. DNS 3CX (фактически, это DNS инфраструктура Google) предоставляет следующие возможности:

  • Поддерживает публичное FQDN имя вашего сервера в одном из принадлежащих 3CX доменов верхнего уровня.
  • Реализует функцию Dynamic DNS, то есть, при смене публичного IP адреса сервера, изменение DNS записи происходит автоматически.

Кроме сервиса DNS, 3CX предоставляет бесплатные доверенные SSL сертификаты безопасности от организации Let’s Encrypt , которые используются для подключений клиентов к серверу, видеоконференции и других важных функций.


Как было сказано, выбранное имя сервера привязывается к лицензионному ключу. Если вы получили бесплатный ключ PBX Edition Key и хотите просто протестировать 3CX, не выбирайте ваше основное имя (например, имя вашей компании), а используйте тестовое. Например, test-company.3cx.ru , а не company.3cx.ru .


C другой стороны, домен верхнего уровня изменить можно. Т.е. вы можете “переехать” с FQDN company.3cx.eu на company.3cx.ru . Имя хоста должно быть уникально в выбранном домене. Поэтому, если имя company.3cx.ru уже занято, вам придется выбирать другое. Имена резервируются по принципу первой заявки, поэтому поспешите с переходом на 3CX v15, чтобы успеть получить красивое имя.


Внимание: 3CX оставляет за собой право отменить регистрацию любого FQDN имени, если оно нарушает патентные права или содержит оскорбительные слова. Также 3CX не может переназначить имя для вас, если оно уже зарегистрировано на другую компанию.

Ваше собственное FQDN имя

Если вы планируете использовать собственное имя сервера, например, хост в вашем корпоративном домене, заранее подготовьте доверенный SSL сертификат для этого имени. Вы укажете его в мастере первоначальной настройки системы. В этом случае 3CX не выдает и не поддерживает для вас сертификат Let’s Encrypt.


Затем ваш лицензионный ключ будет привязан к собственному FQDN имени. Однако, тут есть одна особенность, связанная с работой сервиса 3CX Webmeeting: если ваше FQDN имя имеет вид pbx.company.com , портал Webmeeting автоматически генерирует для вас URL pbxcompany.3cx.*. Убедитесь, что такое имя еще не занято другим пользователем!

Изменение FQDN имени

Чтобы изменить FQDN имя сервера, необходимо сперва убедиться, что новое выбранное имя свободно, а затем отвязать старое имя от вашего лицензионного ключа. Это делается через пользовательский портал https://erp.3cx.com .


Для коммерческих и бесплатных лицензий – зайдите в портал с вашими учетными данными и нажмите Release. Ключ будет отвязан от FQDN.



Для NFR лицензий – откройте заявку в техподдержке 3CX https://erp.3cx.com и укажите в ней ваш NFR ключ и текущее FQDN имя сервера.

Заключение

Повторим основные принципы использования FQDN имени в инсталляциях 3CX:

  1. Первоначальная настройка системы привязывает FQDN сервера к лицензионному ключу
  2. Если оказалось, что выбранное имя уже кем-то занято:
    • Появится ошибка Error creating FQDN: FQDN already in use. Please choose another one.
    • Выберите другое свободное FQDN имя
  3. Последующие инсталляции системы (переустановки) с данным лицензионным ключом требуют указания того же FQDN
  4. Если FQDN не соответствует ключу:
    • Появится ошибка Error creating FQDN: License key already bound to another FQDN.
    • Зайдите в портал erp.3cx.com и проверьте, какое FQDN соответствует вашему ключу, либо отвяжите FQDN от ключа, как показано выше.

БИОС — это сокращение «базовая система ввода вывода». Это гораздо больше, чем предполагает название. Можно подумать, что BIOS контролирует входную и выходную систему. Но BIOS делает гораздо больше. Сегодня, мы узнаем, что такое БИОС в компьютере.

БИОС уже был в наших компьютерах еще со времен DOS – дисковая Операционная система… еще до структурированных DOS, созданный Microsoft. Это один из самых важных компонентов компьютера, он регулярно появляющихся на вашем экране. Это сообщение также выглядит на самом базовом компоненте компьютера и объясняет, почему это требуется в компьютерах для его работы.

Что такое БИОС в компьютере

BIOS является прошивкой, короче говоря. Он хранится на чипе на части системной платы компьютера и в основном, представляет собой набор инструкций, которые выполняются, чтобы помочь загрузить операционную систему.

При включении компьютера, инициируются инструкции BIOS. Эти инструкции делают проверку оперативной памяти и процессор (на наличие неисправностей) на вашем компьютере.

Он проверяет RAM, проверяя каждый отсек, на работоспособность.

После проверки оперативной памяти и процессора, он проверяет наличие других устройств, подключенных к компьютеру.

Он распознает все периферийные устройства, включая клавиатуру и мышь, а затем проверяет параметры загрузки.

Варианты загрузки проверяются в последовательности, сконфигурированного на вашем BIOS: Загрузка с CD-ROM, загружается с жесткого диска, загрузки из локальной сети и т.д.

Он передает бразды правления компьютера в операционной системы путем загрузки основных компонентов операционной системы в оперативной памяти (ОЗУ) зарезервировано для операционной системы, после начальной загрузки.

Это не исчерпывающий список функций в BIOS. Он также проверяет CMOS и другие чипы, чтобы настроить дату и время на компьютере, а также для загрузки драйверов устройств в память. Он проверяет и загружает входные и выходные прерывания (сигналы) к оперативной памяти, так что операционная система знает, что происходит. Например, если пользователь нажимает клавишу запрос, прерывания создается и передается в BIOS, который посылает его в операционную систему. Операционная система решает, какие действия предпринять, в соответствии с запрограммированной инструкцией.

Почему Операционная система не может работать без BIOS. BIOS загружает драйверы жестких дисков и съемных дисков, так что они являются функциональными. Затем он загружает основные части операционной системы, такие как MBR, GPT диск и т. д., в память, так что Операционная система может продолжать нагружать себя.

Как зайти в BIOS компьютера.

Из-за большого разнообразия компьютерных и BIOS производителей над эволюцией компьютеров, существует множество способов, чтобы войти в BIOS Setup или CMOS. Ниже приведен список большинства из этих методов, а также другие рекомендации для входа в настройки BIOS.

Примечание: Apple, или Mac, компьютеры не имеют BIOS и вместо этого использовать в EFI, который не нуждается в модифицируется на основании аппаратных средств в компьютере, как BIOS. EFI обеспечивает лучшую интеграцию между аппаратным и программным обеспечением для компьютеров.

Компьютеры, произведенные в течение последних нескольких лет позволяют войти в программу настройки BIOS, используя одну из пяти кнопок, показанных ниже в процессе загрузки .

F1, F2, F10, DEL, ESC.

Как обновить БИОС

Для того, чтобы сделать компьютерную работу с этими устройствами, то BIOS должен быть обновлен. Если ваша операционная система не может обнаружить новое периферийное устройство, возможно потому, что BIOS не знает, как справиться с этим. Если у вас возникнут такие проблемы, советую проверить наличие обновлений BIOS.

Вы должны проверить версию BIOS в первую очередь. Это может быть сделано путем ввода BIOS во время загрузки, нажав DEL. Если у вас есть версия BIOS вашего компьютера, вы посетите веб-сайт производителя вашего компьютера, чтобы увидеть, есть ли обновленная версия BIOS. Если есть, то скачать его и запустить его. Процесс, как правило, стирая всю предыдущую информацию на чипе BIOS и переписать его с новой информацией.

Убедитесь, что у вас есть резервное питание во время обновления BIOS. Потому что, если компьютер выключается во время процесса, BIOS может быть поврежден, и вам потребуется техник, чтобы исправить это.

ВАЖНО: Если ваш компьютер работает должным образом, вам не нужно обновлять или прошивать BIOS. В любом случае, мы рекомендуем вам не пытаться обновить настройки BIOS самостоятельно.

Инструкция

Перезагрузите компьютер, чтобы войти в BIOS, и при появлении первой заставки нажмите клавишу Delete. Возможны и другие варианты клавиш на разных материнских платах, обычно на заставке будет указано сообщение наподобие Press Del to enter setup. Если указана другая клавиша, к примеру, F2, нажмите ее, чтобы войти в BIOS.

Перейдите в сектор Boot. Управление командами BIOS производится с помощью кнопок управления курсором и клавиши Enter. Найдите параметр Boot device - он отвечает за последовательность загрузки с устройств. Выделите нужный параметр с помощью стрелки и активируйте его клавишей Enter. Выберите для первоочередной загрузки жесткий диск, для этого выберите пункт First Boot Device и нажмите Enter, выберите пункт HDD, и снова нажмите Enter.

Перейдите в раздел Power, чтобы установить настройки BIOS для кулера и процессора. Включите контроль системного кулера, а также . Для этого установите в опции CPU Q-Fan Control значение Enabled, а для опции CPU Fan-Profile выберите значение Optimal.

Уберите загрузку заставки-логотипа при включении компьютера, чтобы ускорить загрузку системы. Для этого перейдите в сектор Boot, выберите опцию Boot Settings Cohfiguration, найдите пункт Full Screen Logo, установите в значении этого параметра Disabled.

Перейдите в раздел Standard CMOS Setup, чтобы выполнить настройку даты и времени системы, а также параметров жестких дисков компьютера. В разделе Integrated Peripherals можно установить настройки интерфейса, а также дополнительные системные функции. Для установки опций энергопотребления и питания перейдите в раздел Power Management Setup. Функцию привязки к картам расширения компьютера можно установить в разделе PnP/PCI Configurations.

Чтобы определить показания системных датчиков (температура процессора, скорость вращения вентилятора), перейдите в раздел Hardware Monitor. Чтобы восстановить настройки BIOS по умолчанию, перейдите к пункту Load Setup Defaults.

Обратите внимание

Команды в разных версиях BIOS могут незначительно отличаться от описанных выше.

BIOS - base input-output system, базовая система ввода-вывода — это комплекс параметров, определяющих режим функционирования компьютерного «железа». Эти настройки могут очень существенно отражаться на производительности компьютера, влияя на работу процессора, памяти, жестких дисков, дисководов и прочих систем.

Прежде чем пытаться настроить bios, сделайте резервную копию важных и других , расположенных . Неосторожные манипуляции с bios могут закончиться фатально.


  1. Прежде всего, необходимо открыть меню настройки bios. Для этого следует нажать несколько раз клавишу доступа в меню bios в момент после завершения самотестирования (сразу после его включения) и перед началом загрузки операционной системы (появление четырехцветного флажка Windows). Клавишей доступа обычно является клавиша Del или F2. Как правило, сразу после завершения теста системы высвечивается подсказка - с помощью нажатия какой можно войти в bios.

  2. В разделе boot можно указать, в каком порядке система опрашивает приводы при загрузке. К примеру, для установки системы обычно необходимо загрузиться с привода компакт-дисков, а при штатной работе эту возможность лучше для от вирусов и прочего вредоносного программного обеспечения, которое может оказаться на установленном в привод . В первую очередь загрузка производится с First Boot Device.

  3. В разделе Power осуществляется управление кулерами и корпуса (пункт Hardware monitor). Рекомендуется включить (Enabled) контроль всех кулеров (CPU Fan и Chasis Fan), а Fan Profile установить в Optimal. Это поможет избежать перегрева системы и выхода из строя процессора, либо неустойчивой его работы.

  4. В разделе Boot Settings Configuration можно отключить Full Screen Logo (значение Disabled) - тогда при загрузке вместо логотипа производителя будет видна более содержательная информация о результатах тестирования системы.

Разумеется, настроить bios можно и по многим другим параметрам, однако подчеркнем еще раз серьезность любых операций с БИОС. Как правило, большинство настроек bios выставлены оптимальным образом, обеспечивая если не самую производительную, то наиболее надежную работу системы.