DHCP Migration von Server 2008 R2 zu Server 2016

Die DHCP Migration von Server 2008 R2 zu Server 2016 sollte via netsh oder Powershell durchgeführt werden. Die Migration über die GUI der DHCP Konsole wirft einen Fehler und funktioniert u.U. nicht.

Zunächst muss die aktuelle DHCP Datenbank exportiert werden:

Anmeldung auf dem DHCP Server und Start einer administrativen CMD.

Netsh
DHCP
Server \<DHCP Server IP Addresse>
Export c:tempserver_dhcp-db all

Dadurch wird eine Datei namens c:tempserver_dhcp-db erstellt, welche auf den neuen DHCP Server kopiert werden muss.

Net stop DHCPserver
Del c:windowssystem32DHCPDHCP.mdb
Net start DHCPserver
Netsh
DHCP
Server \<DHCP Server IP Addresse>
Import c:tempserver_dhcp-db
Exit
Net stop DHCPserver
Net start DHCPserver

Danach kann der alte DHCP Server abgeschaltet werden. Die alte Datenbank mit allen Reservierungen sollte nun auf dem neuen Server vorhanden sein.

Import und Export via Powershell

Das Vorgehen kann auch via Powershell durchgeführt werden.

Der alte DHCP Server muss dazu mindestens unter Server 2008 laufen.

Auf dem Zielsystem öffnet man eine administrative Powershell. Darin wird nun das neue DHCP Server Modul genutzt.

Export-dhcpserver –computername ALTER.DHCP.SERVER –leases –file c:tempdhcp.xml –verbose

Nun kann man den alten DHCP Server abschalten und die Einstellungen in den neuen Server einspielen.

Import-dhcpserver –computername NEUER.DHCP.SERVER –leases –file c:tempdhcp.xml –backuppath C:tempBackup -verbose

Der Parameter backuppath ist zwingend. Dort wird die aktuelle DHCP Konfiguration zur Sicherung abgelegt.

Advertisements

SYSVOL Replikation – Migration von FRS zu DFS Replikation

Der Begriff SYSVOL (%SystemRoot%SYSVOL) bezieht sich auf einen Satz von Dateien und Ordnern, die auf der lokalen Festplatte jedes Domänencontrollers in einer Domäne gespeichert sind und durch den Dateireplikationsdienst (File Replication Service/FRS) repliziert werden. Netzwerkclients greifen über die folgenden freigegebenen Ordner auf den Inhalt der Struktur SYSVOL zu:

  • NETLOGON
  • SYSVOL

Der Dateireplikationsdienst (File Replication Service, FRS) synchronisiert Ordner mit Dateiservern, die den Dateireplikationsdienst anstelle der neueren DFS-Replikationstechnologie verwenden.

DFS-Replikation ermöglicht das Synchronisieren von Ordnern auf mehreren Servern über LAN- oder WAN-Netzwerkverbindungen. Dieser Dienst verwendet das RDC-Protokoll (Remote Differential Compression), um nur die Teile der Dateien zu aktualisieren, die seit der letzten Replikation geändert wurden.

In den alten Windows Server Verionen < 2003 R2 wurde FRS für die Replikation des SYSVOL Ordners auf andere Domain Controller verwendet. Ab Server 2008 wird primär DFS für die Replikation verwendet. FRS wird allerdings immer noch unterstützt.

Für die Migration von FRS zu DFS wird das Tool “Dfsrmig.exe” genutzt. Damit die Migration funktioniert muss die Domäne mindestens auf dem Funktionslevel von Server 2008 sein.

Ob FRS genutzt wird oder nicht findet man via Powershell

dfsrmig /getglobalstate

heraus.

Die Ausgabe sagt aus, dass die DFS-Replakations-Migration noch nicht eingeleitet wurde.

Die Migration an sich hat vier verschiedene Stati:

  1. Status 0 – Starten
  2. Status 1 – Vorbereitet
  3. Status 2 – Umgeleitet
  4. Status 3 – Entfernt

Status 0

Hierbei wird der Sysvol Ordner auf alle Domain Controller repliziert, um einen konsistenten Status auf allen Systemen zu erreichen.

Status 1

FRS repliziert weiterhin den Ordner. Zusätzlich legt DFS eine Kopie an, die sich unter %SystemRoot%SYSVOL_DFRS befindet. Allerdings ist dieses Verzeichnis inaktiv. FRS ist weiterhin der primäre Dienst.

Status 2

Hier ist es andersherum. DFS antwortet auf die Anfragen und FSR ist inaktiv, repliziert sich allerdings weiterhin.

Status 3

Hier wird der FSR Dienst gestoppt und Windows entfernt den Original Sysvol Ordner. Ab diesem Punkt ist kein Rollback mehr möglich.

Migration

Die Migration wird hier unter Powershell durchgeführt. Man muss Mitglied der Rolle Domänen- oder Enterprise Admin sein.

Wurde die DFSR-Migration noch nicht initialisiert, kann dies mit dem Befehl

dfsrmig /setglobalstate 0

gestartet werden.

Anschließend wird in den Status Vorbereitet gewechselt:

dfsrmig /setglobalstate 1

Durch Eingabe von

dfsrmig /getmigrationstate

kann man sich den aktuellen Status der Migration anschauen.

Wenn der Stand konsistent ist, kann weiter gemacht werden.

dfsrmig /setglobalstate 2

dfsrmig /setglobalstate 3

Abschließend sollte nun nicht nur der FRS Dienst gestoppt und deaktiviert sein, sondern ebenfalls die Sysvol Shares auf das neue Verzeichnis gemappt sein.

Durch

net share

werden die Netzlaufwerke angezeigt.

Vagrant Windows 7/10 Base Box erstellen

Vagrant ist eine freie- und Open-Source Ruby-Anwendung zum Erstellen und Verwalten von virtuellen Maschinen. Vagrant ermöglicht einfaches Deployment insbesondere in der Software- und Webentwicklung und dient als Wrapper zwischen Virtualisierungssoftware wie VirtualBox, VMware und Hyper-V und Software-Configuration-Management-Anwendungen beziehungsweise Systemkonfigurationswerkzeugen wie Chef, Saltstack und Puppet.

Wikipedia

Was ist das Ziel?

Es soll eine Windows 7 VM aus einer Vorlage erstellt werden, auf der in diesem Fall die Software LabVIEW (es geht auch jede andere Software) automatisch installiert werden soll.

Was benötigt man dazu?

Will man die Maschine längerfristig nutzen, braucht man selbstverständlich einen Lizenzschlüssel.

Erstellen der Vagrant Box

Der Erstellvorgang einer Box besteht aus 4 Schritten:

  1. Virtuelle Maschine erstellen
  2. Windows installieren
  3. Windows konfigurieren
  4. Box paketieren und exportieren mit Vagrant

1. Virtuelle Maschine erstellen

Man erstellt wie gewohnt eine VM. Werte wie Arbeitsspeicher und CPU sind frei wählbar, da sie später über die Vagrant Konfigurationsdatei angepasst werden kann. Am besten erstellt man die Base Box natürlich so schlank wie möglich, um viel Raum für Erweiterungen im späteren Verlauf zu lassen.

Diese Optionen in Virtual Box können durch die Konfigurationsdatei angepasst werden: Virtual Box Konfiguration

2. Windows installieren

Die VM wird gestartet und Windows installiert.

Vagrant wird sich später mit der Maschine verbinden müssen. Das passiert durch WinRM (Windows Remote Management). Dazu muss ein User existieren, über den der Zugriff realisiert wird. Standardmäßig nutz Vagrant den Benutzer “vagrant” mit dem Passwort “vagrant”. Sollte ein anderer Benutzer gewünscht sein, so muss er später in der Konfigurationsdatei angegeben werden. So oder so muss der Benutzer als Admin angelegt werden.

[fusion_tooltip title=”Info” class=”” id=”” placement=”top” trigger=”hover”]Man sollte bei der Netzwerkverbindung “privat” auswählen. Das öffentliche Profil bewirkt Probleme mit winrm in den nächsten Punkten.[/fusion_tooltip]

 

3. Windows konfigurieren

  • Virtual Box Tools installieren
  • UAC ausschalten in der Systemsteuerung oder via cmd:
    reg add HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesSystem /v EnableLUA /d 0 /t REG_DWORD /f /reg:64
  • Konfigurieren und Einschalten des WinRM Dienstes durch eine cmd mit Adminrechten:
    winrm quickconfig -q
    winrm set winrm/config/winrs @{MaxMemoryPerShellMB="512"}
    winrm set winrm/config @{MaxTimeoutms="1800000"}
    winrm set winrm/config/service @{AllowUnencrypted="true"}
    winrm set winrm/config/service/auth @{Basic="true"}
    sc config WinRM start= auto
  • Powershell Executionpolicy minimieren:
    Set-ExecutionPolicy Unrestricted
  • RDP einschalten und zulassen: Systemsteuerung – System – Erweiterte Systemeinstellungen – Remote
  • Updates installieren
  • Festplatte säubern, damit die Boxgröße etwas reduziert werden kann
    C:WindowsSystem32cleanmgr.exe /d c:
    Mit dem Sysinternals Sdelete Tool kann der freie Platz genullt werden
    sdelete.exe -z c:

4. Box paketieren und exportieren mit Vagrant

Zunächst erstellt man ein neues Verzeichnis und initialisiert es:

vagrant init

Das erstellte Vagrantfile wird dann an die Ansprüche angepasst:


# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

#Was ist die Basebox?
config.vm.box = "w7box"

#Vagrant mitteilen, dass es eine Windows Box ist und WinRM als Kontrollinstrument genutzt wird
config.vm.guest = :windows
config.vm.communicator = "winrm"
config.vm.boot_timeout = 600
config.vm.graceful_halt_timeout = 600

#Skripte, die nach Erstellen ausgeführt werden sollen
config.vm.provision :shell, path: "scripts/labview.cmd"

#Alternativer Benutzer für WinRM, wenn "vagrant" nicht genutzt werden soll
config.winrm.username = "admin"
config.winrm.password = "123456"

# Verbindung zu WinRM über Port 7889 und RDP via 7888
config.vm.network :forwarded_port, guest: 3389, host: 7888
config.vm.network :forwarded_port, guest: 5985, host: 7889, id: "winrm", auto_correct: true
config.vm.provider "virtualbox" do |vb|

#Name der VM in VB
vb.name = "Win7Std2"
end
end

Als nächstes wird die Base Box exportiert:

vagrant package --base VirtualBoxVMName --output "PfadzurBoxwindows.box" --vagrantfile "PfadzurVagrantfile"

  • VirtualBoxVMName: Wie heißt die VM in Virtual Box?
  • PfadzurBoxwindows.box: Wo soll die Box abgelegt werden?
  • PfadzurVagrantfile: Wo liegt die initiale Konfiguration von oben (kann auch weggelassen werden, dann wird die Konfiguration später angelegt)?
==> default: Clearing any previously set forwarded ports...
==> default: Exporting VM...
==> default: Compressing package to: PfadzurBoxwindows.box
==> default: Packaging additional file: Vagrantfile

Box benutzen

Damit die Box genutzt werden kann, muss sie zur Umgebung hinzugefügt werden:

vagrant box add PfadzurBoxwindows.box --name NameDerBox

Dabei wird die Box komplett auf die lokale Festplatte kopiert.

Entweder hat man die Umgebung vorher initialisiert und das Vagrantfile angegeben, dann kann man via

vagrant up

die VM erstellen lassen.

Sollte man mehrere Boxen haben oder das Vagrantfile nicht angegeben haben, so muss man mit

vagrant init NameDerBox

das Verzeichnis erstellen und ggf. das Vagrantfile dort abändern. Mit

vagrant up

wird dann auch diese VM erstellt.

In diesem Fall wurde noch ein Skript aufgerufen, was eine Software nachinstalliert hat.

Silverlight Installationsfehler 0x80070643 (Update, Deinstallation)

Beim Update von Silverlight oder bei der De-Installation kommt es zu Fehlern. Bspw.: “Installationsfehler: Die Installation des folgenden Updates ist mit Fehler 0x80070643 fehlgeschlagen: Sicherheitsupdate für Microsoft Silverlight (KB3193713)”

Der Installer findet das MSI Paket zur Installation nicht und poppt mit der Meldung auf, dass man es suchen soll. Trotz korrektem Paket wird die Software nicht korrekt installiert.

Dazu kann man Silverlight von Hand deinstallieren. Oder per Batch Skript:

reg delete HKLMSoftwareMicrosoftSilverlight /f
reg delete HKEY_CLASSES_ROOTInstallerProductsD7314F9862C648A4DB8BE2A5B47BE100 /f
reg delete HKEY_LOCAL_MACHINESOFTWAREClassesInstallerProductsD7314F9862C648A4DB8BE2A5B47BE100 /f
reg delete HKEY_CLASSES_ROOTTypeLib{283C8576-0726-4DBC-9609-3F855162009A} /f
reg delete HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionApp Pathsinstall.exe /f
reg delete HKEY_CLASSES_ROOTAgControl.AgControl /f
reg delete HKEY_CLASSES_ROOTAgControl.AgControl.5.1 /f
reg delete HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall{89F4137D-6C26-4A84-BDB8-2E5A4BB71E00} /f
rmdir /s /q "%ProgramFiles%Microsoft Silverlight"
rmdir /s /q "%ProgramFiles(x86)%Microsoft Silverlight"

Anschließend kann Silverlight neu installiert werden.

Windows 10: OneDrive entfernen bzw. deinstallieren

Zuerst stoppt man alle Prozesse und schließt die Applikation in der Taskleiste.
Anschließend wird eine Kommandozeile als Administrator gestartet und folgendes ausgeführt:
64 bit: %SystemRoot%SysWOW64OneDriveSetup.exe /uninstall
32 bit: %SystemRoot%System32OneDriveSetup.exe /uninstall
onedrive-uninstall
Es gibt keinerlei Benachrichtigungen über die Deinstallation, allerdings findet man anschließend das Programm nicht mehr im Startmenü.
Am Ende muss man noch das Symbol im Explorer ausblenden.
Dazu in die Registry gehen:

HKEY_CLASSES_ROOTCLSID{018D5C66-4533-4307-9B53-224DE2ED1FE6}

Dort den Schlüssel System.IsPinnedToNameSpaceTree abändern und den Wert “0” vergeben.

0x80070bcb: Windows 10 Drucker nicht installiert (GPO)

Die unter Windows 7 funktionsfähigen GPOs für Drucker funktionieren unter Windows 8 oder Windows 10 nicht mehr. Die Drucker, die normal automatisch über die Drucker-Richtlinien verteilt wurden, werden nicht mehr eingerichtet.

Die Eventlog Fehlermeldung deutet auf ein Download Problem der Druckertreiber hin:

Benutzer
Canon iR-ADV C3325i F3
[Drucker] iR3325 F3 {ACD440CB-AF71-406D-A426-463A4354F7F9}
0x80070bcb Der angegebene Druckertreiber wurde nicht im System gefunden und muss heruntergeladen werden.

In den früheren Windows Versionen wurde für dieses Problem die Point and Print Richtlinie definiert, die das Herunterladen ohne die UAC und Admin Rechte ermöglicht.

point-and-print

Das Händische Hinzufügen des Drucker kam mit der besagten UAC Meldung hoch und bestätigt die Probleme der Treiber Installation.

druckertreiber

Folgende Anpassung bringt die GPO aber wieder zum Laufen:

Lösung

Öffnen der Registry auf dem Printserver. Mit einer kleinen Anpassung des Schlüssels PrinterDriverAttributes  gaukelt man Windows vor, dass die verwendeten Treiber “package aware” sind. Ändern des Schlüssels und ein Neustart des Servers lässt die Drucker wieder via GPO installieren.

HKLM:SystemCurrentControlSetControlPrintEnviromentsWindowsx64Drivers…DRUCKERTREIBER

Die Hex Nummer muss ungerade sein. Um die Originaleinstellungen beizubehalten und nur besagte Package Awareness zu ändern, muss “1” hinzugefügt werden. Hier beim Canon ist der originale Wert “4” und der neue dementsprechend “5”.

Laut Microsoft steht der Flag bei PrinterDriverAttributes für PRINTER_DRIVER_PACKAGE_AWARE. Das veranlasst dazu den Treiber als Paket anzusehen. D.h. ein .cab Paket wird erstellt, welches die .inf und den Katalog beinhaltet.

Kein Problem von MS sondern der Hersteller.
https://msdn.microsoft.com/windows/hardware/drivers/print/package-aware-print-drivers?f=255&MSPPError=-2147217396

drucker

svchost.exe_wuauserv: Windows 10 WSUS Update Crash

Startet man unter Windows 10 den Update Service, wenn der PC über einen WSUS Server mit Updates versorgt wird, stürzen diverse Dienste ab. Das Problem entstand erst durch das neuste Anniversary Update 1607.

Dies tritt sowohl bei sich schon länger im WSUS befindlichen Clients auf, als auch bei komplett neu installierten Systemen.

anniversary update crash

Scheinbar bringt das Öffnen der Update Seite den Dienst zum Absturz, was einige andere Dienste ebenfalls beeinflusst.

Fehlermeldung svchost.exe_wuauserv

Name der fehlerhaften Anwendung: svchost.exe_wuauserv, Version: 10.0.14393.0, Zeitstempel: 0x57899b1c
Name des fehlerhaften Moduls: ntdll.dll, Version: 10.0.14393.82, Zeitstempel: 0x57a55744
Ausnahmecode: 0xc0000409
Fehleroffset: 0x00000000000e3051
ID des fehlerhaften Prozesses: 0x61c
Startzeit der fehlerhaften Anwendung: 0x01d21fc1d04b1fc2
Pfad der fehlerhaften Anwendung: C:Windowssystem32svchost.exe
Pfad des fehlerhaften Moduls: C:WindowsSYSTEM32ntdll.dll
Berichtskennung: be8b85aa-38a4-4b49-8db8-cd410ad76747

Betroffene Dienste

Die folgenden Dienste stürzen anschließend ebenfalls ab (Eventlog, ID 7034 & 7031):

  • Application Information Service
  • Computer Browser
  • Certificate Propogation
  • Group Policy Client
  • IKE and AuthIP Keying Modules
  • IP Helper Service
  • Server Service
  • Geolocation Service
  • User Profile Service
  • System event notification
  • Remote desktop configuration
  • Shell hardware detection
  • Themes
  • User manager
  • Update Orchestrator for Windows Update
  • Windows management instrumentation

Lösung

Zur Lösung des Problems müssen folgende Updates manuell heruntergeladen und installiert werden:

  • KB3176934
  • KB3176938
  • KB3193494
  • KB3176936

http://catalog.update.microsoft.com/v7/site/home.aspx

2016-10-06-13_33_44-mobrech32-remotedesktopverbindung