Windows Server® часто разворачиваю для выполнения всего одной роли Value Proposition Уменьшение attack surface area Сервер оптимизирован для выполнения роли - легче управлять и поддерживать Повышение надежности и безопасности Меньший объем установки и запуска
Server Core Минимальная инсталляция Windows Server Command Line interface, no GUI Shell Входит в следующие редакции Windows Server Web Standard Enterprise Datacenter Server Core - уменьшенное количество обновления Windows 2000 ~60% Windows Server 2003 ~40% Windows Server 2008 ~40%
Server Core поддерживает Следующие роли: DHCP, File, Print, AD, AD LDS, Media Services, DNS, IIS, and Hyper-V Следующие дополнительные компоненты: WINS, Failover Clustering, Subsystem for UNIX-based applications, Backup, Multipath IO, Removable Storage Management, Bitlocker Drive Encryption, SNMP, Telnet Client, QoS
Server Core Server Roles Server Core Security, TCP/IP, File Systems, RPC, plus other Core Server Sub-Systems DNS DHCP File AD Server With.NETFx, Shell, Tools, etc. TS NAS ADFS WDS Etc… GUI, Shell, IE, Media, Mail, Etc. Server, Server Roles (for example only) AD LDS Media Server IIS 7 Hyper-V Print
.NET Framework для Server Core Подмножество.NET 2.0 Подмножество.NET 3.0 Windows Communication Framework (WCF) Windows Workflow Framework (WF) Подмножество.NET 3.5 WF расширения 3.5 LINQ Частичная поддержка ASP.NET вIIS PowerShell WoW64 опциальный компонент Не устанавливается по умолчанию
Server Core Server Roles and Optional Features Server Core Security, TCP/IP, File Systems, RPC, plus other Core Server Sub-Systems DNS DHCP File AD Server With.NetFx, Shell, Tools, etc. TS NAS ADFS WDS Etc… Server, Server Roles (for example only) AD LDS Media Server IIS 7 Hyper-V Print ASP.NET PS.NET 3/3.5.NET 2.0 WoW64 GUI, Shell, IE, Media, Mail, Etc.
CLR 2.0 LINQLINQ CLR 3.0 Additions Additions CLR 3.5 Additions Additions WPFWPFASP.NETASP.NETWCFWCFWFWF
CLR 2.0 ASP.NETASP.NET WPF LINQLINQ CLR 3.0 Additions Additions CLR 3.5 Additions Additions WPFWPFWCFWCFWFWF
Подмножество.NET 2 на Server Core Установка Start /w ocsetup NetFx2-ServerCore Для поддержки 32bit : Start /w ocsetup ServerCore-WOW64 Start /w ocsetup NetFx2-ServerCore-WOW64
.NET 3 функциональность WPF нет на Server Core.NET 3.5 функциональность LINQ.NET 3 и 3.5 устанавливаются в одном пакете Start /w ocsetup NetFx3-ServerCore Для поддержки 32bit: Start /w ocsetup ServerCore-WOW64 Start /w ocsetup NetFx3-ServerCore-WOW64
Microsoft.Aspnet.Snapin Microsoft.Ink Microsoft.ManagementConsole.* Microsoft.StylusInput.* Microsoft.VisualBasic.Compatibility.VB6 Microsoft.Windows.Themes Microsoft.WindowsCE.Forms Microsoft.WindowsMobile.DirectX.* System.ComponentModel.Design.* System.Data.Design System.Deployment.Application System.Diagnostics.Design System.Media System.Messaging.Design System.Speech.* System.Web.UI.Design.* System.Windows.* UIAutomationClientsideProviders
Необходимо выбрать Target Platform x64 Необходимо модифицировать msi при помощи Orca.exe В таблице Custom Action необходимо удалить строки: DIRCA_CheckFx VSDCA_VsdLaunchConditions
Входит в IIS, в тот же пакет что и в полном сервере: IIS-ASPNET Ограничения System.Web.Mail не будут работать по причине CDOSYS Используйте System.Net.Mail Web Application Tool (WAT) не доступно
Установите IIS Management Service Start /w ocsetup IIS-ManagementService Разрешите Remote Management В HKLM\Software\Microsoft\WebManagement\Server выставить EnableRemoteManagement в 1 Запустить Management Service Net start wmsvc
IIS-NetFxExtensibility Поддержка.NET framework модулей расширения IIS-PowerShellProvider IIS PowerShell cmdlets IIS-FTPExtensibility IIS-WebDAV WCF-HTTP-Activation
Start /w ocsetup MicrosoftWindowsPowerShell PowerShell cmdlets Server Manager cmdlets Start /w ocsetup ServerManager-PSH-Cmdlets add-pssnapin Microsoft.windows.servermanager Cmdletы: add-windowsfeature, get-windowsfeature и remove- windowsfeature Best Practice Analyzer cmdlets Start /w ocsetup BestPractices-PSH-Cmdlets add-module BestPractices Cmdletы: get-bparesult, invoke-bpamodel и set-bparesult
Создавайте единый бинарник для Server и Server Core Идеальный вариант Не делайте зависимостей GUI Для native code, используйте минимальный уровень Win32 APIs Для managed code, ограничитесь Server Core subset Тестируйте на Server Core Работающий, но не идеальный вариант Делайте GUI зависимости Проверяйте что запущенно на Server Core Если да, то отключайте GUI Тестируйте на Server Core
Вызывайте GetProductInfo API Value Meaning PRODUCT_DATACENTER_SERVER 0x Server Datacenter Edition (full installation) PRODUCT_DATACENTER_SERVER_CORE 0x C Server Datacenter Edition (Server Core installation) PRODUCT_ENTERPRISE_SERVER 0x A Server Enterprise Edition (full installation) PRODUCT_ENTERPRISE_SERVER_CORE 0x E Server Enterprise Edition (Server Core installation) PRODUCT_STANDARD_SERVER 0x Server Standard Edition (full installation) PRODUCT_STANDARD_SERVER_CORE 0x D Server Standard Edition (Server Core installation)
InstallationType Registry entry HKLM\Software\Microsoft\Windows NT\CurrentVersion Возможные значения Client, Server и ServerCore
Нет Explorer Shell, Task Bar и System Tray Нет Internet Explorer Http.sys включен Нет Audio/Video/Multimedia Нет MMC Нет common dialog box : Browse buttons в MSIs Open/Save/Save as
Server Core включает поддержку Windows Installer (MSI) Добавьте поддержку Unattended install /quiet 32 bit инсталляторы и Custom Actions требуют ServerCore-WOW64