Monday, December 14, 2015

First quick notes on Windows 2016 TP4

This is my first post on the latest preview release of Microsoft server: Windows 2016 Technical Preview 4. Here's what I have found worth sharing.

CORE-TO-GUI SWITCH AND BACK IS GONE

One of the first things that I noticed is that you can’t switch from Server with Desktop Experience to Server Core and back anymore without starting from a clean install. Till Windows 2016 TP3 you could leverage a single line of PowerShell code to enable the GUI option or to disable it, but this not possible in the latest preview of Windows 2016. Now if you issue the very same commands in Windows 2016 TP4 you get the following error:
Add-WindowsFeature Server-Gui-Shell -WhatIf
Add-WindowsFeature : ArgumentNotValid: The role, role service, or feature name is not valid: 'Server-Gui-Shell'.
The name was not found.
At line:1 char:1
+ Add-WindowsFeature Server-Gui-Shell -WhatIf
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (Server-Gui-Shell:String) [Install-WindowsFeature], Exception
    + FullyQualifiedErrorId : NameDoesNotExist,Microsoft.Windows.ServerManager.Commands.AddWindowsFeatureCommand

Success Restart Needed Exit Code      Feature Result
------- -------------- ---------      --------------
False   No             InvalidArgs    {}
Here's a screenshot of the error:


If you look at the features installed by default in Windows 2016 TP4, there is no GUI option available:
Get-WindowsFeature | ? installed

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[X] File and Storage Services                           FileAndStorage-Services        Installed
    [X] Storage Services                                Storage-Services               Installed
[X] .NET Framework 4.6 Features                         NET-Framework-45-Fea...        Installed
    [X] .NET Framework 4.6                              NET-Framework-45-Core          Installed
    [X] WCF Services                                    NET-WCF-Services45             Installed
        [X] TCP Port Sharing                            NET-WCF-TCP-PortShar...        Installed
[X] SMB 1.0/CIFS File Sharing Support                   FS-SMB1                        Installed
[X] Windows Defender Features                           Windows-Defender-Fea...        Installed
    [X] Windows Defender                                Windows-Defender               Installed
    [X] GUI for Windows Defender                        Windows-Defender-Gui           Installed
[X] Windows PowerShell                                  PowerShellRoot                 Installed
    [X] Windows PowerShell 5.0                          PowerShell                     Installed
    [X] Windows PowerShell ISE                          PowerShell-ISE                 Installed
[X] WoW64 Support                                       WoW64-Support                  Installed
On the contrary you had this option in Windows 2012 R2:
Get-WindowsFeature | ? installed

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[X] File and Storage Services                           FileAndStorage-Services        Installed
    [X] Storage Services                                Storage-Services               Installed
[X] .NET Framework 4.5 Features                         NET-Framework-45-Fea...        Installed
    [X] .NET Framework 4.5                              NET-Framework-45-Core          Installed
    [X] WCF Services                                    NET-WCF-Services45             Installed
        [X] TCP Port Sharing                            NET-WCF-TCP-PortShar...        Installed
[X] SMB 1.0/CIFS File Sharing Support                   FS-SMB1                        Installed
[X] User Interfaces and Infrastructure                  User-Interfaces-Infra          Installed
    [X] Graphical Management Tools and Infrastructure   Server-Gui-Mgmt-Infra          Installed
    [X] Server Graphical Shell                          Server-Gui-Shell               Installed
[X] Windows PowerShell                                  PowerShellRoot                 Installed
    [X] Windows PowerShell 4.0                          PowerShell                     Installed
    [X] Windows PowerShell ISE                          PowerShell-ISE                 Installed
[X] WoW64 Support                                       WoW64-Support                  Installed
...and even in Windows 2016 till TP3:
Get-WindowsFeature | ? installed

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[X] File and Storage Services                           FileAndStorage-Services        Installed
    [X] Storage Services                                Storage-Services               Installed
[X] .NET Framework 4.6 Features                         NET-Framework-45-Fea...        Installed
    [X] .NET Framework 4.6                              NET-Framework-45-Core          Installed
    [X] WCF Services                                    NET-WCF-Services45             Installed
        [X] TCP Port Sharing                            NET-WCF-TCP-PortShar...        Installed
[X] Ink and Handwriting Services                        InkAndHandwritingSer...        Installed
[X] Media Foundation                                    Server-Media-Foundation        Installed
[X] SMB 1.0/CIFS File Sharing Support                   FS-SMB1                        Installed
[X] User Interfaces and Infrastructure                  User-Interfaces-Infra          Installed
    [X] Graphical Management Tools and Infrastructure   Server-Gui-Mgmt-Infra          Installed
    [X] Desktop Experience                              Desktop-Experience             Installed
    [X] Server Graphical Shell                          Server-Gui-Shell               Installed
[X] Windows PowerShell                                  PowerShellRoot                 Installed
    [X] Windows PowerShell 5.0                          PowerShell                     Installed
    [X] Windows PowerShell ISE                          PowerShell-ISE                 Installed
[X] Windows Server Antimalware Features                 Windows-Server-Antim...        Installed
    [X] Windows Server Antimalware                      Windows-Server-Antim...        Installed
[X] WoW64 Support                                       WoW64-Support                  Installed

The following is a screenshot of how the features of Windows 2016 TP3 Core and Windows 2016 TP4 Core appeared when compared in RSAT. Windows Antimalware becomes Windows Defender. And the User and Interface Infrastructure has left for good:


SERVER CORE IS FIRST CHOICE

As a matter of fact, Microsoft is trying hard to move graphical user tools away from servers, which, securitywise, is a good thing. This goes along the fact that, since Windows 2012 R2, the installation option highlighted by default is Core:

Same in Windows 2016 TP4:


Microsoft recommends that sysadmins choose Core installation unless they have a particular need for the additional user interface elements and graphical management tools that are included in the “Server with Desktop Experience” option.

To be true, I enjoyed the possibility to add the GUI for some specific tasks and then remove it afterward. But once you are proficient with PowerShell (any sysadmin should be), this is a small obstacle and will force you to improve your automation skills and learn new ways of doing, like RSAT (you must now use the Windows 10 version.) for server management or DSC for configuration management.

This strategy is confirmed by the fact that Windows Server are installed with PowerShell Remoting enabled by default and Remote Desktop disabled by default. And this since Windows 2012 R2 as well:

Also the logon Windows has been stripped down to the minimum in recent versions of Windows Server Core. In Windows 2012 R2 Core you still had some colors when logging in:


These colors have gone in Windows 2016 TP4 without Desktop Experience:


MEMORY FOOTPRINT

At this point I wondered what was the impact of this minimalist approach on memory consumption. The answer was quickly found. I configured six virtual machines with 4 GB of RAM, Dynamic memory minimum value to 256 MB and a 20% memory buffer.


At startup all of the virtual machines use all of the assigned memory:


Memory is progressively released. For some reasons Windows 2016 TP3 virtual machines were the last one to release their memory in my test lab:


Then I run a simple line of PowerShell code to check memory assignment after a few minutes idle:


get-vm win*| sort memorydemand | ft name,*mem*

Name           MemoryAssigned   MemoryDemand MemoryStatus    MemoryStartup DynamicMemoryE  MemoryMinimum  MemoryMaximum
                                                                                   nabled
----           --------------   ------------ ------------    ------------- --------------  -------------  -------------
win2012r2core       331350016      274726912 OK                 4294967296           True      268435456  1099511627776
win2012r2           461373440      377487360 OK                 4294967296           True      268435456  1099511627776
win2016tp4core      658505728      447741952 OK                 4294967296           True      268435456  1099511627776
win2016tp3core      568328192      477102080 OK                 4294967296           True      268435456  1099511627776
win2016tp3          585105408      485490688 OK                 4294967296           True      268435456  1099511627776
win2016tp4          603979776      501219328 OK                 4294967296           True      268435456  1099511627776
It looks like Windows 2012 R2 in mode Core has a smaller memory footprint than Windows 2016, and this probably because there are more niceties offered by the latter, like the Host Guardian Role, or the Network Controller role, and an evolved version of DotNet, or support for Containers and Storage Replica, just to mention a few.

This post is getting long, so I am going to get back on new stuff I have found in Windows 2016 TP4 in the next post. Stay tuned!

4 comments:

  1. i would like to add additional comments, if you try to install Exchange 2016 on Server 2016 TP4, pre-requisites will prevent to complete the installation because of require for Server GUI Infra Features to be installed first.

    I mention this point to take in consideration

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...