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!
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!
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.
ReplyDeleteI mention this point to take in consideration
Nice
ReplyDeleteGreat
ReplyDeleteVery Nice
ReplyDeletethe windows component server-gui-mgmt-infra is not installed on this computer
ReplyDelete