Category Archives: W8

“Just enough server”: der “Removed”-Status in Windows 8

Posted on by .

[For an ENGLISH version, click this line!]

Microsoft empfiehlt für Windows 8 die Installationsoption Server Core (“GUIs on servers are evil“). Diese Meinung mag man teilen, insbesonders dann, wenn es darum geht, (virtualisierte) Server aufzusetzen, die so spartanisch ausgestattet sein sollen wie möglich.

In Windows 8 haben dism.exe und seine neu eingeführten PowerShell Geschwister einen neuen Installationsstatus (“InstallState”) hinzubekommen, den “Removed“-Status. Entfernte Komponenten werden nicht im Windows “Side-by-Side”-Store unterhalb von “c:\windows\winsxs” zwischengespeichert. Will man eine solche Komponente installieren/aktiveren, muss man eine Installationsquelle angeben.

Zur Sache: hat man Windows Server 8 Core installiert so kann man die aktiven Rollen und Features mit Hilfe der PowerShell überprüfen. Hierzu tippt man zunächst einfach “powershell” in das Kommandofenster ein und ruft anschließend die neuen dism-Cmdlets auf:

Get-WindowsFeature

Inaktive (“Disabled”) Komponenten lassen sich leicht installieren/aktivieren:

Get-WindowsFeature wins | Add-WindowsFeature –r

Will man so viel Festplattenplatz wie irgendwie möglich sparen und damit gleichzeitig den Server härten, so kann man alle nicht verwendeten Komponenten entfernen:

Get-WindowsFeature | ? { $_.InstallState –like “available” } | % { Remove-WindowsFeature $_ .Name -remove }

Benötigt man später eine entfernte Komponente, so muss man zur Installation einen Quellpfad angeben. Dies kann eine DVD/ISO-Datei sein:

gwmi Win32_OperatingSystem | select Caption

Get-Windowsimage -ImagePath “d:\sources\install.wim”

Mount-WindowsImage -ImagePath “d:\sources\install.wim” -Index 4 -Path “c:\mnt” -ReadOnly

Add-WindowsFeature wins -r -s c:\mnt\windows\sxs

Dieses Beispiel unterstellt, dass “D:” das DVD-Laufwerk repräsentiert und das auf dem Server Abbild Nummer 4 installiert wurde. Das gwmi Cmdlet zeigt das installierte Betriebssystem, diesen Wert kann man vergleichen mit der Ausgabe von “Get-WindowsImage” und so den passenden Index ermitteln.

Macht das alles Sinn?

Glücklicherweise kann das jeder Administrator für sich selbst entscheiden. Sehen wir uns doch mal den verringerten Platzbedarf an:
$c = gwmi Win32_LogicalDisk | ? { $_.deviceid -match “c” }
($c.Size – $c.FreeSpace) /1GB
Ermitteln man den Platzbedarf des Startlaufwerks, so verbraucht ein Server Core anfänglich 5,7 GB Festplattenplatz. Entfernt man alle nicht verwendeten Features, reduziert sich dies auf 5 GB. Diese Angaben mögen im Einzelfall variieren, es ist jedoch zu unterstellen, dass die Ersparnis nicht so signifikat ist, als dass man allzu viel Zeit mit dieser Optimierung verbringen sollte. Wesentlich jedoch ist, dass man mit entfernten Komponenten umgehen kann, da sich ein Server Core ansonsten nicht in allen Belangen administrieren lässt.

Standard-Platzbedarf einer Core-Installation

Standard-Platzbedarf einer Core-Installation

Platzbedarf nach Enternen aller ungenutzen Komponenten

Platzbedarf nach Enternen aller ungenutzen Komponenten

Entfernte Komponenten können ohne Quellpfad nicht installiert werden

Entfernte Komponenten können ohne Quellpfad nicht installiert werden

Diese Informationen beziehen sich auf Windows 8 Build 8250, die im Februar 2012 veröffentlichte Vorabversion.
Quellen

Lebewohl, DCPROMO!

Posted on by .

[For an ENGLISH version, click this line!]

In der “Windows Server Developer Preview”, die Microsoft auf der BUILD-Konferenz vorstellte, lassen sich zahlreiche Änderungen der Benutzerschnittstelle beobachten. Neben den vielen offensichtlichen Veränderungen, sind auch zwei alte Bekannte dem Rotstift zum Opfer gefallen: “dcpromo.exe” und “servermanagercmd.exe” fehlen in der Windows 8-Vorabversion. Da Microsoft im Gegenzug zahlreiche neue Cmdlets einführt, lohnt ein Blick auf die Installation eines Domänencontrollers (DC), wie sie in “Windows 8” begegnen wird.

(a) Vorarbeiten
Nach der Installation des W8-Servers muss zunächst die Netzwerkkarte(n) konfiguriert werden, was am einfachsten über die Eingabe des Befehls “ncpa.cpl” geschieht. Alternativ steht mit “netsh” ein alter Bekannter zur Verfügung, sowie neue Cmdlets: Get-NetIPAddress, Set-NetIPAddress

(b) Die graphische Installation
Unter diesem Link findet sich eine Screenshot-Gallerie, die die Vorgehensweise dokumentiert.

(c) Installation und Konfiguration mittels PowerShell
Zur Installation über die PowerShell steht ein Cmdlet namens “Install-ADDSForest” (bzw. “Install-ADDSDomain”) zur Verfügung; damit dieses verwendet werden kann, muss zunächst die Rolle “AD-Domain-Services” installiert werden.

Get-WindowsFeature *domain* | Add-WindowsFeature –Restart
Import-Module ADDSDeployment ## Optional
Install-ADDSForest –DomainName “contoso.com” –InstallDNS:$true

Der fällige Neustart erfolgt selbständig; nach der Installation ist zwar der DNS-Dienst installiert, es fehlen jedoch die Vewaltungswerzeuge, die man leicht nachrüsten kann:

Add-WindowsFeature DNS-Server-Tools -Restart

In allen Fällen ist der Parameter “-Restart” optional, der Neustart erfordert nur, wenn er notwendig ist. Es empfiehlt sich, den Reboot-Parameter grundsätzlich anzufügen, um keinesfalls mit einer unvollständigen Installation in Fehler zu laufen. Ob die Installation(en) erfolgreich waren, kann man so ermitteln:

Get-WindowsFeature | ? { $_.Installed }

“Install-ADDSForest” erfordert lediglich die Übergabe zweier Parameter, wie das Beispiel oben zeigt. Man kann jedoch weitere Parameter übergeben, was das nachfolgende Beispiel dokumentiert. Eine solche Beispieldatei generiert der graphische Installer (b), was die gesamte Prozedur stark vereinfacht.

## Windows PowerShell Script for AD DS Deployment ##

Import-Module ADDSDeployment
Install-ADDSForest `
-DatabasePath “C:\Windows\NTDS” `
-DomainMode “Win2008R2” `
-DomainName “contoso.com” `
-ForestMode “Win2008R2” `
-InstallDNS:$true `
-LogPath “C:\Windows\NTDS” `
-RebootOnCompletion:$false `
-SafeModeAdministratorPassword (Read-Host -AsSecureString -Prompt “Enter Password”) `
-SYSVOLPath “C:\Windows\SYSVOL”