Determine Windows Server 2016 Editions
 Datacenter Edition  Standard Edition
Core functionality Core functionality 
Unlimited Hyper-V Containers Two Hyper-V Containers 
Unlimited Containers
Unlimited Containers 
Host Guardian Service Host Guardian Service 
Nano Server option Nano Server option
Storage Spaces Direct -
Storage Replica -
Shielded VMs -
Advanced Networking Stack -

Determine Installation Requirements
- 1.4 GHz x64 processor with support for NX, DEP, CMPXCHG16D, LAHF/SAHF, and PrefetchW
- SLAT support (EPT or NPT)
- 512 MB* or 2 GB ECC-type (or similar) RAM
- 32 GB* hard disk space
- Gigabit Ethernet NIC that is PCI Express compliant and supports PXE

Windows Server 2016 - System Requirements

Determine Installation Options
Server Core
- Small-footprint, headless OS that removes the desktop UI and runs only minimal code
- Includes only limited graphical tools like Task Manager and Windows PowerShell
- Use with Long Term Service Branch service model
Server Core Supported Roles
Install SQL Server on Server Core

Nano Server
- Extremely small footprint, headless OS ideal for compatible services, containers, and microservices
- Designed for total remote management via PowerShell, Server Management, or remote MMC or System Center consoles
- Requires Software Assurance and Current Branch for Business servicing model

Server with Desktop Experience
- Traditional graphical user interface equivalent to "Server with a GUI" plus Desktop Experience feature
- Intended for legacy applications and Remote Desktop Services
- Use with Long Term Service Branch servicing model

Install Features and Roles
- Role "Something a Windows Server aspires to be."
- Role Service "The functions that fulfill those aspirations."
- Feature "Everything else."

Configure Server Core
- Set display resolution, date, and time
- Configure IP addressing
- Change computer name
- Configure licensing and activation
- Configure Windows firewall
- Join Active Directory domain
- Add roles and features

Tool to use: sconfig from CMD line
powershell
Set-DisplayResolution 1280 720
set-timezone "mountain standard time"
tzutil /l
set-date -Date "10/19/2016 11:53 am"
Get-NetlPAddress
Get-NetlPAddress -interfaceAlias ethernet0
New-NetlPAddress -InterfaceAlias ethernet0 -IPAddress 192.168.3.110 -PrefixLength 24 -DefaultGateway 192.168.3.2
Set-NetiPlnterface -interfaceAlias ethernet0 -Dhcp Enabled
Get-NetlPConfiguration -InterfaceAlias ethernet0
Set-DnsClientServerAddress -InterfaceAlias ethernet0 -serverAddresses ("192.168.3.10")
hostname
Get-Content env:computername
rename-computer -newname server1 -restart
slmgr.vbs /?
slmgr /ipk <key> /ato
Get-NetFirewallRule | ft
Get-NetFirewallRule -Name corenet-igmp-in | Enable-NetFirewallRule
Get-NetFirewallRule -Name corenet-igmp-out | Enable-NetFirewallRule
Get-NetFirewallRule | ft displayname,displaygroup
Enable-NetFirewallRule -DisplayGroup "file and printer sharing"
New-NetFirewallRule -DisplayName "Allow All Traffic" -Direction outbound -Action allow
New-NetFirewallRule -DisplayName "Allow All Traffic" -Direction inbound -Action allow
Add-Computer -DomainName "<domain-name>" -Restart
### Use this command to set PowerShell as your Server Core instance's 
### default shell (replacing the legacy command prompt)
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -Name Shell -Value 'PowerShell.exe -NoExit'
get-windowsfeature -ComputerName serverl
install-windowsFeature -Name -ComputerName serverl
Enter-PSSession serverl


PowerShell DSC - Desired State Configuration - see attachment for scripts
Windows PowerShell Desired State Configuration Overview
PowerShell Desired State Configuration: The Basics

Get-PackageSource -Name PSGallery Set-PackageSource -Trusted -Force -ForceBootstrap
install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module xComputerManagement -Force
Install-Module xNetworking -Force
Write-Host "You may now execute '.\configureServer.psl'"


Perform Upgrades and Migrations
- Clean Install
- Upgrade
- Cluster OS Rolling Upgrade
- License Conversion
- Role Migration

"Upgrade works best in VMs where specific OEM hardware drivers are not needed for a successful upgrade."
Upgrade and conversion options for Windows Server 2016

License Conversions
- Conversion not supported on Server Core or with Domain Controllers
- Slmgr.vbs /dlv Check for "EVAL" in the output
- DISM /online /Get-CurrentEdition Identify the installed Edition
- DISM /online /Set-Edition:<edition ID> /ProductKeyKproduct key> /AcceptEula
- This command also used to convert Standard Edition to Datacenter Edition

Role Migration
Install Server with Desktop Experience - see migration table
Migrating Roles and Features in Windows Server

Determine an Appropriate Activation Model
- Retail and Multiple Activation Keys
- Key Management Service
- Active Directory-based Activation (only for Win8+ & 2k12+ Clients)
- Automatic VM Activation << for Hyper-V
Appendix A: KMS Client Setup Keys
Automatic Virtual Machine Activation

Usage Scenarios for Nano Server
- DNS servers
- IIS servers
- Scale-Out File Servers
- Hyper-V hosts and clusters
- Container hosts
- Microservice hosts

Why Nano Server?
- 93% Smaller VHD Size
- 92% Fewer Critical Bulletins
- 80% Fewer Required Reboots
Smaller OS = Fewer Components = Less Security Exposure = Greater Scalability

Nano Server Gotchas
- Nano Server is entirely "headless" with is no local logon capability or GUI
- Supports only 64-bit applications
- Cannot serve as an Active Directory DC
- Group Policy is not supported, but Desired State Configuration is supported
- Cannot be configured to use a proxy server to access the internet
- SCCM and SCDPM are not supported
- Windows PowerShell on Nano Server has important differences
- Requires Current Branch for Business and Software Assurance

Current Branch for Business
- "Cloud cadence" support model
- Rapid development cycles
- Feature updates 2-3x per year
- Nano Servers cannot operate more than two CBB releases behind
- CBB release updates are not automated
- For comparison, support and servicing for LTSB model is 5+5 years
Understanding the Long Term Servicing Branch and Current Branch in Windows 10

Install nano server as a VM
import-module C:\nanoserver\NanoServerlmageGenerator
New-NanoServerlmage -Edition Standard -DeploymentType Guest -MediaPath c:\ -BasePath C:\NanoServer\nanoserverl -TargetPath c:\NanoServer\NanoServerl\nanoserverl.vhdx -ComputerName nanoserverl

Firewall Rules - for ping 
- File and Printer Sharing (SMB-In)
- File and Printer Sharing (Echo Request - ICMPv4-In)

set-item wsman:\loca1host\c1ient\trustedhosts -value 192.168.3.112
$cred = Get-Credential 192.168.3.112\Administrator
Enter-PSSession -ComputerName 192.168.3.112 -credential $cred
Get-DnsClientServerAddress
set-dnsclientserveraddress -interfacealias ethernet -serveraddress 192.168.3.10
Get-DnsClientServerAddress
djoin /provision /domain <domain> /machine nanoserverl /savefile c:/nanoserver/nanoserverl.txt
djoin /requestodj /loadfile C:\nanoserverl.txt /windowspath c:\Windows /localos
install-packageprovider -name nuget -minimumversion 2.8.5.201 -force
save-module -path "$env:programfiles\windo\vspowershen\module;    -name nanoserverpackage
instal1-packageprovider nanoserverpackage
Import-packageprovi der nanoserverpackage
find-nanoserverpackage
install-nanoserverpackage -name microsoft-nanoserver-dns-package
enable-windowsoptionalfeature -online -featurename dns-server-ful1-role
install-nanoserverpackage -name microsoft-nanoserver-iis-package
import-module
mkdir c:\site1
new-iissite -name sitel -binding-information -physicalpath c:\sitel
start-iissite sitel
start-service was.w3svc


Install Nano Servers as a host
- install WAIK - Download the Windows ADK
- copype amd64 c:\winpe_amd64
- makewinpemedia /ufd c:\winpe_amd64 e:
- New VM and boot from USB created in previous step
- boot to WinPE, diskpart, list disk, select Disk 0
- clean
- convert gpt
- create partition eft size=100
- format quick fs=fat32 label="system"
- assign letter="s"
- create partition msr size=128
- create partition primary
- format quick fs=ntfs label="nanoserver"
- assign letter="n"
- exit
- dism /apply-image /imagefile:c:\nanoserver1\nanoserver.win /index:1 .applydir:n:\
- bcdboot n:\windows /s s:
- wpeutil reboot