Приручаем Windows Server Core. Переключение между режимами

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

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

1. Создайте экспериментальный сервер для тестирования

Самый полезный совет - установить Server Core на несколько тестовых компьютеров и основательно поработать с ними, не ставя под угрозу производственные серверы. Не стесняйтесь экспериментировать - чем лучше вы изучите Server Core на тестовых машинах, тем эффективнее сможете управлять реальными серверами.

2. Не путайте командную строку и PowerShell

В некоторых статьях ошибочно утверждается, что для управления Server Core необходимо знать командлеты PowerShell. Хотя Server Core действительно управляется из командной строки, это совсем не то же самое, .

Командная строка происходит от DOS и присутствует в том или ином варианте во всех когда-либо выпущенных версиях Windows для 32- и 64-разрядных платформ. Некоторые команды для командной строки действительно работают в PowerShell, однако командлеты PowerShell в командной строке не запускаются.

Основной интерфейс управления Server Core - это именно командная строка. PowerShell даже не поддерживается в Windows Server 2008 Server Core, хотя существуют неофициальные способы это исправить. В Windows Server 2008 R2 Server Core поддержка PowerShell предусмотрена, но не активирована по умолчанию. Как инсталлировать PowerShell в этом варианте установки, рассказывается на .

3. Используйте доступные графические утилиты

Хотя по своей сути Server Core - облегченная серверная ОС без графического интерфейса, GUI-утилиты для нее все-таки существуют. С их помощью можно облегчить себе задачу первоначальной настройки сервера.

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

В состав Windows Server 2008 R2 входит утилита Sconfig для первоначальной настройки. Запустить ее можно командой SCONFIG.CMD из командной строки. По своему назначению она аналогична Core Configurator, однако не обладает столь широкой функциональностью. С помощью этой утилиты можно присоединиться к домену или установить обновления.

4. Используйте средства управления в удаленном режиме

При управлении Windows Server 2008 в стандартной установке мы пользуемся встроенными инструментами с графическим интерфейсом - консолью Active Directory «Пользователи и компьютеры» (Active Directory Users And Computers), Диспетчером управления службами (Service Control Manager) и т. д. По умолчанию эти утилиты подключаются к локальному серверу, однако с их помощью можно управлять и удаленными машинами, в том числе на базе Server Core.

В состав Server Core не входят привычные инструменты, но ничто не мешает подключиться к облегченному серверу из консоли другого сервера и управлять им точно так же, как если бы на нем была установлена стандартная версия Windows Server.

5. Учитывайте ограничения Server Core

Поскольку Server Core - система облегченная, она подходит далеко не для всех задач. Многие сторонние приложения просто не работают в этой среде, а ряд ролей и связанных с ними служб Windows Server 2008 R2 не поддерживается в версии Server Core.

Набор доступных ролей зависит от редакции Windows. К примеру, Windows Server 2008 R2 Web Edition поддерживает только три роли, а редакции Datacenter и Enterprise - одиннадцать ролей:

Службы сертификации Active Directory (Active Directory Certificate Services);
доменные службы Active Directory (Active Directory Domain Services);
службы Active Directory облегченного доступа к каталогам (Active Directory Lightweight Directory Service);
BranchCache Hosted Cache;
сервер DHCP;
сервер DNS;
файловые службы (File Services);
Hyper-V;
службы мультимедиа (Media Services, загружаются отдельно);
службы печати (Print Services);
веб-службы (IIS).

Полный список ролей, поддерживаемых различными версиями Windows Server 2008 R2, можно найти на

Server Core особый режим установки Windows Server, это среда, в которой отсутствует графический интерфейс и средства управления, а также некоторые серверные роли и компоненты. Управление Windows Server Core предполагается из командной строки, с помощью PowerShell, или же с других серверов/рабочих станций с установленным RSAT ( , ). Впервые Core-режим работы серверной ОС Microsoft появился еще в Windows Server 2008. Основные преимущества Server Core перед полными инсталляциями Windows Server: экономия системных ресурсов, повышенная стабильность и безопасность за счет меньшего количества компонентов, упрощение обслуживания, меньший даунтайм при установке обновлений, сокращение поверхности атаки злоумышленниками.

Одним из главных недостатков в Windows Server 2008 Core являлась невозможность переключение в режим с графической оболочкой (GUI) или в обратную сторону (из GUI в Core режим). В случае возникновения такой необходимости приходилось целиком переустанавливать ОС.

В Windows Server 2012 Microsoft решила убрать это ограничение, кроме того появился еще один вариант работы сервера — минимальный интерфейс сервера (Minimal Server Interface) . В этом режиме отсутствуют проводник, Internet Explorer, рабочий стол и начальный экран).

В Windows Server 2012 теперь можно установить и настроить сервер в знакомом администраторам GUI, после чего перевести сервер в Core режим. Этот подход упрощает процедуру настройки сервера, не вынуждая администраторов разбираться в подчас достаточно сложных консольных командах и командлетах PoSh.

Итак, в Windows Server 2012 возможна работа в нескольких режимах, между которыми в процессе эксплуатирования и настройки сервера может переключаться администратор.

  • Full Server with GUI полноценный сервер с GUI
  • Server Core with GUI Management (Minimal Server Interface) – минимальная интерфейс сервера с Windows Server 2012, включающий графические утилитаты управления сервером
  • Server Core – режим командной строки

Отметим, что в режиме Minimal Server Interface система занимает примерно на 400 мб меньше места, чем полноценная ОС с GUI. В случае с Server Core экономия достигает порядка 4Г дискового пространства.

Переключение из режима Server Core в GUI

В том случае, если сервер был установлен в режиме Windows Server 2012 Core, в установленных компонентах отсутствуют необходимые файлы для установки GUI (концепция минимизации занимаемого места на диске в Core режиме). По умолчанию, если нужные компоненты отсутствуют на диске, система пытается скачать их с сайта Windows Update. Если доступ в интернет у сервера отсутствует, нам придется указать альтернативные источник установки (с помощью команды powershell Install-WindowsFeature с параметром -Source).

Для установки графического интерфейса нам понадобится дистрибутив Windows Server 2012. Допустим, мы вставили (смонтировали iso образа) дистрибутив Windows Server 2012 в устройство, которому назначена буква D:\.

Dism /get-wiminfo /wimfile:D:\sources\install.wim

Т.к. на сервере установлен Windows Server 2012 Datacenter, нас интересует дистрибутив SERVERDATACENTER, индекс которого 4.

Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart -source:wim:d:\sources\install.wim:4

Процедура установки займет порядка 5-10 минут. В том случае если при установке будут наблюдаться проблемы, попробуйте отключить сетевые карты, чтобы Windows не пыталась скачать файлы с сайта Windows Update.

После выполнения команды сервер автоматически перезагрузится и загрузится уже в графическом режиме.

Графические компоненты Windows Server 2012 можно также установить и с помощью DISM, ту же самую операцию выполним с помощью двух команд:

Dism /Online /Enable-Feature /FeatureName:Server-Gui-Mgmt /All /Source:wim:D:\sources\install.wim:4 Dism /Online /Enable-Feature /FeatureName:Server-Gui-Shell /Source:wim:D:\sources\install.wim:4

В том случае, если сервер изначально был установлен в GUI режиме, который затем отключили, его можно вернуть командой:

Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell –Restart

Переключение из GUI режима в Core

Удалить GUI режим в Win Server 2012 в Core можно несколькими способами:

Запустите строку PoSh и выполните команду

Remove-WindowsFeature Server-Gui-Shell,Server-Gui-Mgmt-Infra -restart

После выполнения команды сервер автоматически перезагрузится и загрузили уже в Core-режиме.

Аналогом командлета remove-WindowsFeature является Uninstall-WindowsFeature команда, и чтобы перейти из режима Server with GUI в режим Server Core воспользуйтесь командами:

Import-Module ServerManager Uninstall-WindowsFeature Server-Gui-Mgmt-Infra –restart

Если вам удобнее пользоваться графическими утилитами, откройте консоль Server Manager:


Переключение из Windows Server 2012 GUI в Minimal Server interface

В режиме работы Minimal Server Interface в системе присутствуют все базовые графические инструменты управления сервером (оснастки MMC, консоль Server Manager, элементы панели управления), однако такие компоненты как Windows Explorer, Internet Explorer 10, рабочий стол, начальный экран Start screen отсутствуют.

С помощью Powershell переключиться в режим Minimal Server Interface можно с помощью команды:

Remove-WindowsFeature Server-Gui-Shell -restart

Тоже самое в графической консоли Server Manager:

  • Откройте консоль Server Manager
  • Выберите Remove Roles or Features
  • Снимите флажок с элемента Server Graphical Shell
  • По окончании работы мастера перезагрузите сервер

Переключение из Core в Minimal Server Interface в Windows 2012

Откройте консоль Powershell и выполните команду:

Install-WindowsFeature Server-Gui-Mgmt-Infra -restart -source:wim:d:\sources\install.wim:4

В Windows Server 2008 было представлено достаточно новинок и наверное одной из главных — возможность установки в варианте Server Core без графического интерфейса. Такой режим имеет много положительных сторон, но вот настройка основных параметров сервера исключительно в командной строке не всем может прийтись по вкусу.

Действительно именно наличие графического интерфейса, ставшего фактически товарным знаком системы от Microsoft, сделало Windows такой популярной системой. Новички достаточно быстро осваивают основные настройки, как системы, так и сервисов. Появление режима Server Core изменило ситуацию в корне. С одной стороны сервер априори стал безопаснее, системные требования к оборудованию изменились в меньшую сторону. Но с другой — новичку приходится выполнять большую часть настроек исключительно в командной строке, что требует уже определенной подготовки. Так на сайте Microsoft приведен такой факт: для установки IIS в Server Core администратор должен ввести 923 символа. Не каждый это сможет сделать без ошибок.
При наличии еще одной системы с установленной Windows 2008, сервером работающим в Server Core можно управлять удаленно используя консоль управления MMC, System Center и некоторые другие инструменты. Ориентированные как правило на администрирование отдельных ролей. В том числе есть варианты и других систем Windows. Например, для настройки Hyper-V можно использовать диспетчер для Vista SP1 (support.microsoft.com/kb/952627). Но таких утилит не много, а при помощи MMC можно сделать далеко не все. Первоначальные установки все равно придется производить в командной строке.
Изначально утилиты для Server Core должны работать без взаимодействия с пользователем, в результате система имеет достаточно ограниченный набор API связанных с графикой. Ссылки на все функции и возможности описаны в документе “Developing Management Applications for Server Core ” (http://msdn.microsoft.com/en-us/library/ms723872(VS.85).aspx). Например, MMC не работает напрямую с локальной системой, только удаленное управление. Как результат — задача разработки программы с графическим интерфейсом для Server Core несколько затруднена, но это не значит, что она совсем не возможна. В итоге в настоящее время доступно несколько утилит в том числе и имеющих графический интерфейс, при помощи которых можно произвести основные настройки сервера в этом режиме. Интересно, что они хотя и несколько отличаются функционально, но имеют практически одно и то же название.
Зараннее хочу отметить, что ни одна из программ описанных в обзоре не имеет локализованного интерфейса, но все термины являются общепринятыми и при наличии, хотя минимальных знаний языка и принципов настройки разобраться очень просто.

CoreConfigurator

Первой, а поэтому наверное самой известной утилитой на сегодня, является CoreConfigurator (http://blogs.microsoft.co.il/files/folders/guyt) разработанный Гаем Теверовским (Guy Teverovsky) в марте 2008. После установки (msiexec /i Configuratorurator.msi ) и запуска в меню CoreConfigurator находим 11 пунктов обеспечиващих доступ к основным настройкам, которыми пришлось бы управлять из командной строки:

  • Активация продукта;
  • Настройка разрешения экрана;
  • Настройка часов и временных зон;
  • Установка разрешений для удаленных RDP подключений (администратору и использование устаревшего протокола);
  • Управление локальными учетными записями (создание, удаление, добавление в группы, управление паролями);
  • Установка разрешений для Windows Firewall;
  • Включение/отключение WinRM;
  • Настройка сетевого интерфейса (IP-адрес, маска сети, шлюз, адреса DNS серверов);
  • Установка имени компьютера, рабочей группы или домена;
  • Установка ролей и компонентов Server Core;
  • Запуск DCPROMO для настройки контроллера домена.
    • настройки резервирования разделов компонентом WindowsServerBackup;
    • региональные установки;
    • настройка параметров автоматического обновления;
    • управление сервисами;
    • запуск редактора реестра и Диспетчера задач Windows.

    Все настройки довольно просты и понятны, выбираем пункт и вводим/отмечаем нужное значение. Утилиту можно свободно скачать с сайта разработчика, в виде ZIP архива или ISO образа. Доступно также 33 страничное весьма подробное руководство на английском языке. В нем в частности поясняется, какие параметры активируются при выборе тех или иных пунктов.

    Server Core Configurator

    В рамках проекта CodePlex (OpenSource от Microsoft) также разрабатывается аналогичный инструмент — Server Core Configurator (http://www.codeplex.com/CoreConfig), распространяемый под лицензией Microsoft Public License (Ms-PL). Версия с CodePlex представляет собой коллекцию VBS (Visual Basic Scripting) скриптов, упакованных в CAB файл или в ISO образ (есть и исходные тексты). Установка заключается в распаковке архива на другом компьютере и копировании на сервер. Непосредственно на Server Core распаковать CAB файл можно при помощи команды “expand”:

    > expand CoreConfigurator.cab -f :* C:\

    > expand CoreConfigurator.cab -f:* C:\

    Далее запускаем находящийся внутри скрипт «Setup-Core.wsf «, после чего появится меню. Принцип работы с Server Core Configurator несколько отличается от двух предыдущих программ. Параметры работы выбираются вводом цифр или букв, которые соответствуют нужному пункту. Настраивать систему, практически блуждая в меню Server Core Configurator несколько сложнее, но все же удобнее чем вручную. Всего пунктов насчитывается 10, при выборе некоторых будут вызваны дополнительные меню и подменю:
    1. Лицензия (текущий статус, настройка прокси, активация, установка ключа, сброс текущего статуса лицензии – всего 12 пунктов);
    2. Установка имени компьютера, подключение к домену, запуск DCPromo;
    3. Настройка сетевых интерфейсов (просмотр, настройка, переименование, отключение, добавление DNS, ISCSI);
    4. Установка/удаление/просмотр ролей и компонентов;
    5. Управление учетными записями пользователей, входящими в группу локальных администраторов;
    6. Управление общими каталогами;
    7. Control Panel (дата, время, региональные настройки, установки монитора, скринсейвер, RDP, WinRM, добавление драйверов, автоматические обновления включая WSUS, Findows Firewall);
    8. Server Hardening Menu (отключение — туннельных, LAN, PPP интерфейсов, IPv6, тюнинг NTFS);
    9. Информация о системе;
    10. Вызов менеджера задач.
    Чтобы вернуться в предыдущее меню следует нажать клавишу “X”. Пунктов настроек Server Core Configurator имеет довольно много, и по возможностям он превосходит все остальные программы обзора.

Сегодня я хотел бы познакомить читателя с Windows Server Core 2008 R2.

Как показывают мои личные наблюдения, многие администраторы его боятся. Причина проста: в головах прочно засело Windows=GUI, а вот GUI-то в нем как раз и нет. Как следствие все воспринимают Server Core как «не такой» Windows. Он действительно не такой, но ничего страшного в нем нет. Более того, в нем есть свои плюсы и прелести. Из очевидных - экономия ресурсов. Из не очевидных - отсутствие возможности тыкать во все места дисциплинирует и заставляет разбираться в том что хочешь сделать.

Меньшая требовательность к ресурсам позволяет эффективнее распределять оные при виртуализации серверов.
Поясню:
Есть, положим, сервер (не важно физический или виртуальный). На нем Windows Server 2008R2, AD (не основной контроллер), WSUS. Чтобы это хоть как-то ворочалось минимум нужно 2GB памяти. Вместо него можно сделать две виртуалки с Server Core, на одной AD, на второй WSUS. При этом обе эти виртуалки будут жить с полугигом памяти и прекрасно себя чувствовать. При этом лишаемся мы только GUI, которым я, например, и так не пользуюсь практически, по крайней мере с консоли сервера.

Теперь расскажу с чего начинать и как делать:
Рассказывать и показывать процесс установки не вижу смысла. Там все просто и банально. Накосячить просто негде.
Первый успешный логин являет нашему взгляду вот такую радостную картину.

Первым делом запускаем sconfig.

Настраиваем сеть, вводим в домен, разрешаем RDP, в общем делаем все что нужно.

Отдельно хочу заметить, что в русской версии не работает разрешение удаленного управления MMC через sconfig. При попытке это сделать вы получите сообщение о невозможности перенастройки брандмауэра. Обходится просто:
netsh advfirewall set domainprofile firewallpolicy allowinbound,allowoutbound
Если паранойя не позволяет открыть все порты, то можно настраивать тонко.

Следующий этап: Установка PowerShell. Установки ролей и компонентов делается с помощью команды DISM. С ее помощью также можно посмотреть список доступных компонентов и ролей (DISM /online /Get-Features).
DISM /online /Enable-Feature /FeatureName:NetFx2-ServerCore /FeatureName:NetFx2-ServerCore-WOW64 /FeatureName:NetFx3-ServerCore /FeatureName:NetFx3-ServerCore-WOW64 /FeatureName:MicrosoftWindowsPowerShell /FeatureName:ServerManager-PSH-Cmdlets
Эта команда поставит нам.NET2, .NET3, сам PowerShell, и наборы управляющий командлетов.
Если есть желание, можно поставить файловый менеджер, например, FAR:
PS C:\Dist>msiexec /package Far20.x64.msi
PS C:\Dist> cd Env:
PS Env:\> $cur = get-item -Path Path
PS Env:\> $cur.Value+=";C:\Program Files\Far2"
PS Env:\> Set-Item -Path Path -Value $cur.Value

Теперь у нас есть платформа. Все дальнейшие настройки и аналитику можно уже получать с помощью MMC оснасток со своего ПК или другого сервера.

Далее собственно установка ролей, все делается до умопомрачения просто.
Сначала рассмотрим установку WSUS:
1-е: Включаем IIS.
DISM /Online /Enable-Feature /FeatureName:NetFx2-ServerCore /FeatureName:IIS-WebServer /FeatureName:IIS-WebServerRole /FeatureName:IIS-ASPNET /FeatureName:IIS-WindowsAuthentication /FeatureName:IIS-HttpCompressionDynamic /FeatureName:IIS-IIS6ManagementCompatibility /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-Metabase
2-е: Ставим сам WSUS (http://www.microsoft.com/download/en/details.aspx?id=5216). И настраиваем как обычно, через визард. (если указать в качестве хранилища имеющийся SQL-сервер, то надо иметь ввиду, что имя базы WSUS не спрашивает а использует имя SUSDB, и если на этом сервере есть такая база, то WSUS ее просто грохнет).
3-е: Ставим из того-же дистрибутива на свой ПК оснастку управления. И в общем-то все. WSUS сервер готов.

Контроллер домена:
Тут все еще проще.
DISM /online /Enable-Feature /FeatureName: DNS-Server-Core-Role - ставим DNS.
dcpromo /replicaornewdomain:replica /replicadomaindnsname:domain.name /safemodeadminpassword: /autoconfigdns:yes
- ставим AD.
Ролью DNS и AD можно управлять оснастками со своего рабочего ПК точно так же как это обычно делается с консоли сервера. Вот, например, запущенный удаленно диспетчер сервера.

То есть весь процесс установки и настройки Server Core ничуть не сложнее, чем настройка обычного сервера. Однако информации по нему гораздо меньше и вообще он как-то не заслужено обделен вниманием.

P.S. Я сознательно обошел вопросы лицензирования и тот факт, что лицензии стоят дороже чем железо, так что прошу меня за это не пинать. Ситуации бывают всякие, и иногда использование Server Core вполне себе оправдано.

Понятие «пользовательский режим» и «режим ядра» относятся к операционной системе. С этими понятиями тесно связано понятие уровней привилегий процессоров, но это не одно и то же. ОС Windows в процессорах архитектуры x86 использует два уровня 0 и 3:

    0 — для режима ядра (нет ограничений на выполняемые инструкции);

    3 — для пользовательского режима (есть ограничения на выполняемые инструкции).

Операционная система Windows отвечает за переключение между пользовательским режимом и режимом ядра. Таким образом, когда выполняется код ОС или драйвера, он выполняется на 0 уровне процессора x86, который не имеет каких-либо ограничений. Если же выполняется код в пользовательском режиме — то это происходит на 3 уровне.

В принципе нам достаточно знать, что разработчики процессоров предусмотрели специальный механизм уровней привилегий, пойдя навстречу разработчикам операционных систем. Это сделано для того, чтобы сделать систему в целом более стабильной и менее подверженной сбоям из-за некачественно написанного программного обеспечения.

Хотя на рисунке видно, что драйвера Windows используют 1,2 уровень для Windows это не так, как уже было сказано (рисунок описывает возможность процессоров архитектуры x86). Возможно, в какой-либо другой операционной системе используются и эти уровни.

Итак, если программа, которая выполняется в пользовательском режиме, обратится по адресу памяти, который не существует, то мы получим только крах этой программы, закроем ее и запустим заново. Если же это произойдет в режиме ядра, то мы получим синий экран смерти (BSOD).

Большинство синих экранов смерти, порядка 70% (согласно статистики Microsoft) происходит из-за ошибок в драйверах сторонних разработчиков.

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

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

Вы можете легко увидеть в своей системе, сколько процессорного времени отдается на исполнение кода в режиме ядра, а сколько пользовательскому режиму. Для этого выберите Пуск / Выполнить, введите perfmon и нажмите enter для того, чтобы запустить оснастку Системный монитор («Производительность» для Windows XP).

В панели инструментов выбираем «Добавить», далее выбираем счетчик процессор и, удерживая Ctrl, выбираем:

    % работы в пользовательском режиме;

    % работы в привилегированном режиме.

Нажимаем «Добавить» и «ОК».

Также наблюдать за загрузкой ЦП в режиме ядра можно с помощью диспетчера задач. Для этого вначале запускаем его (самый просто способ – Ctrl + Shift + Esc), далее выбираем “Вид / вывод времени ядра”.

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

Если мы работаем в системе с правами обыкновенного пользователя, а не администратора то вероятность получить вирус, из-за которого могут возникать синие экраны смерти, равна нулю.

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