TechNet · Englische TechNet Blogs · TechNet Deutschland · itproblogs.de · .NET Blogs

Arnd Rößner: Microsoft bietet Kunden mehr Wahlfreiheit für das Orchestrieren von Container-Anwendungen

Die Open-Source-Lösung Kubernetes für automatisiertes Deployment, Skalierung und Management von Container-Anwendungen ist ab sofort über den Azure Container Service (ACS) verfügbar. Zudem ist die Preview von Windows Server Containers mit Kubernetes gestartet. Die neuen Microsoft Container-Dienste vereinfachen die Planung, Orchestrierung und Bereitstellung von Container-Anwendungen über die Cloud. Die neuen Tools im Überblick: Die Open-Source-Lösung Kubernetes […]

Arnd Rößner: STRABAG PFS und Microsoft starten System- und Entwicklungspartnerschaft

Der österreichische Immobilien- und Industriedienstleister STRABAG Property and Facility Services (STRABAG PFS) und Microsoft werden in den nächsten Jahren unter dem Stichwort „Immobiliendienstleistung 4.0“ an der Entwicklung branchentypischer Lösungen für die Steuerung, Verwaltung und operative Erbringung von Facility-Management-Leistungen zusammenarbeiten. Kern der Zusammenarbeit ist die Entwicklung und Umsetzung einer neuen IT-Plattform, die u. a. eine vollintegrierte […]

Arnd Rößner: Microsoft patcht Flash Player unter Windows außer der Reihe

Microsoft patcht Flash Player unter Windows außer der Reihe – heise online

faq-o-matic: Die DNS-Zonen eines Domänencontrollers ausgeben

In Active-Directory-Umgebungen sind üblicherweise die Domänencontroller auch DNS-Server. Dass sie als solche die DNS-Zonen hosten, die zum AD gehören, liegt auf der Hand. Aber welche Zonen liegen dort noch? Das kann durchaus unterschiedlich sein (wenn dies auch meist ein Konfiguratoinsfehler ist).

Das folgende kleine Batchskript Get-DNSZonesFromDC.bat gibt alle DNS-Zonen (und auch die Conditional Forwarder) aus, die ein bestimmter DC hält. Um es auszuführen, muss man das CMD-Fenster mit einem Konto starten, das Administratorrechte auf dem jeweiligen DC hat. Übergibt man keinen DC-Namen, so fragt es den DC, an den man sich angemeldet hat.

@echo off
if "%1" == "" (
	set DC=%logonserver:~2%
	) else (
	set DC=%1
	)
echo DNS Server: %DC% > %userprofile%\Documents\%userdnsdomain%-%DC%-DNS.txt
echo Domain: %userdnsdomain% >> %userprofile%\Documents\%userdnsdomain%-%DC%-DNS.txt
dnscmd %DC% /enumzones >> %userprofile%\Documents\%userdnsdomain%-%DC%-DNS.txt

Die Daten schreibt das Skript in eine Textdatei im Dokumente-Verzeichnis des ausführenden Users, die mit der Domäne und dem Servernamen benannt ist.

Syntaxbeispiele:

  • Get-DNSZonesFromDC
    (fragt den Anmeldeserver des ausführenden Users)
  • Get-DNSZonesFromDC DC007
    (fragt den DC “DC007”)
Note: There is a file embedded within this post, please visit this post to download the file.

Arnd Rößner: Microsoft stellt Open-Source-Tools zum Training von autonomen Robotern und Drohnen zur Verfügung

Forscher von Microsoft Research haben die Aerial Informatics and Robotics Platform angekündigt: Teil der Plattform ist ein Set neuer Tools, mit denen Entwickler Roboter, Drohnen und andere autonome Vehikel testen und den Umgang mit Hindernissen trainieren können. Die Betaversion dieser Tools ist ab sofort als Open-Source-Projekt via GitHub verfügbar. Zudem enthält die Plattform Software, die […]

Carsten Rachfahl [Hyper-V]: Desired State Configuration (DSC) und Windows Server 2016 – Teil 3: Pull Clients

Im vorangegangenen Teil 2 meiner DSC-Artikelserie habe ich beschrieben, wie man einen DSC Web Pull Server erzeugen und konfigurieren kann. Ich habe Ihnen aber nicht mehr verraten, wie man ein solches System dann bestücken und nutzen kann. Das will ich heute an einem kleinen Beispiel aufzeigen: Wir werden eine VM erzeugen, die sich ihre Einstellung für den Microsoft Update als Pull Client von unserem Pull Server abholt.

Konfigurationsskripte und DSC-Ressourcen erstellen und einsammeln

Als erstes müssen wir natürlich Konfigurationsskripte erstellen. In meinen bisherigen Beispielen habe ich partielle Konfigurationen verwendet, eine zum Konfigurieren des Betriebssystems (OSconfig) und weitere für die Anwendungskomponenten (APPconfig), die auf dem Zielsystem installiet werden sollen.

In meiner DSC-Labumgebung (unter D:/DSC-Lab) habe ich bisher für jedes Zielsystem ein eigenes Unterverzeichnis angelegt, in dem die jeweiligen Konfigurationen abgelegt wurden.

An der Vorgehensweise, wie wir das Betriebssystem konfigurieren, also z.B. Computernamen und IP-Konfiguration setzen, werden wir nichts ändern. OSconfig werden wir weiterhin für jedes System getrennt verwalten und im Push Modus übermitteln und abarbeiten lassen.

Eine Anwendungskonfiguration wie das Aktivieren des Microsoft Updates, die systemunabhängig für viele bzw. alle Systeme gelten soll, ist ein ideales Szenario, um sie über einen DSC Web Pull Server bereitzustellen.

Dazu werden wir die Anwendungskonfigurationen nicht mehr systemspezifisch speichern, sondern direkt im Lab-Verzeichnis D:/DSC-Lab erstellen. In einem eigenen neues Unterverzeichnis PullSetup werden wir dann alles sammeln, was auf den Pull Server bereitgestellt werden soll.

Zu allererst benötigen wir eine DSC-Ressource, mit der wir den Microsoft Update aktivieren können. Wir finden sie unter dem Namen xWindowsUpdate in der Powershell Gallery. Diese Ressource installieren wir wie üblich zunächst auf unserem Entwicklungsrechner.

Nun müssen wir ein für den Microsoft Update passendes Konfigurationsskript erstellen und kompilieren. xWindowsUpdate enthält unter anderem die DSC-Resspurce xWindowsUpdateAgent, mit der man die verschiedenen Einstellungen für den Windows Update setzen kann:

  • IsSingleInstance muss immer mit 'Yes' definiert sein und bedeutet, dass die Ressource in einem Skript nur einmal vorkommen darf.
  • Bei Category geben wir an, welche Arten von Updates berücksichtigt werden sollen. Es müssen nicht alle Kategorien (wie im Beispiel) angegeben werden. Will man z.B. nur die Sicherheitsupdates, genügt die Angabe von 'Security'.
  • Bei Source legen wir fest, woher Updates geladen werden sollen. Mögliche andere Quellen wären 'Windows Update' (Default) oder 'WSUS'.
  • Die Angabe bei Notifications legt fest, wie Updates behandelt werden sollen. 'ScheduledInstallation' ist der Standardwert.
  • Mit UpdateNow können wir festlegen, ob beim Abarbeiten der Konfiguration Updates sofort automatisch gesucht und installiert werden sollen. Mit $false wird dies auf den nächsten regulären Zeitpunkt für den Windows Update zurückgestellt.

Die Konfiguration müssen wir dann kompilieren durch einen Aufruf des Namens.

Durch das Kompilieren wird ein Unterverzeichnis mit dem Namen der Konfiguration erzeugt, das eine .MOF-Datei mit dem Namen des Nodes enthält, in unserem Beispiel also ./EnableMSUpdate/localhost.mof.

​Diese .MOF-Datei (nur diese, nicht die Skriptdatei!) benötigen wir später auf dem Pull Server, d.h. wir kopieren sie in unser Sammelverzeichnis PullSetup. Wichtig dabei ist, der .MOF-Datei einen passenden Namen zu geben, sinnvollerweise <Configuration>.mof. Pull Clients rufen Konfigurationen über deren Namen beim Server ab. Für unser Beispiel werden wir die Datei localhost.mof also beim Kopieren in EnableMSUpdate.mof umbenennen.

Die für das Publizieren einer Konfiguration notwendigen DSC-Ressourcen müssen ebenfalls auf dem Pull Server verfügbar gemacht werden. Wir kopieren deshalb noch die für unser Beispiel benötigte DSC-Resource xWindowsUpdate in das PullSetup-Verzeichnis.

Wir haben für unser Beispiel auf unserem Entwicklungsrechner also jetzt die folgende Verzeichnisstruktur:

Dieses Verzeichnis müssen wir jetzt auf unseren Pull Server kopieren und dort publizieren. Am einfachsten geht das in unserer Lab-Umgebung über eine VM Verbindung im Erweiterten Modus (Enhanced Session) vom lokalen Hyper-V Manager zum Pull Server DSC-PS01. Dort sehen wir sowohl unser DSC-Lab Verzeichnis auf unserem Hyper-V Host als auch das Laufwerk C: des Pull Servers und wir können Dateien hin- und herkopieren.

Tipp: Wenn Sie den Pull Server gemäß meiner Beschreibung im Teil 2 erzeugt haben, gibt es dort ein Verzeichnis C:/DSC, das noch die Daten von der Pull Server Konfiguration enthält. Kopieren Sie das PullSetup-Verzeichnis dorthin.

Zurück zum Inhaltsverzeichnis...​

Konfigurationsskripte und DSC-Ressourcen auf dem Pull Server publizieren

​Beim Installieren des Pull Servers haben wir in der DSC-Konfiguration zwei Pfade festgelegt:

  • ConfigurationPath: In diesem Verzeichnis liegen die .MOF-Dateien der für Clients verfügbaren Konfigurationen; bei unserem DSC-PS01 haben wir dafür festgelegt:
    "C:/Program Files/WindowsPowerShell/DscService/Configuration"
  • ModulePath: Hier müssen die für die Konfigurationen notwendigen DSC-Ressourcen abgelegt werden. Für unseren DSC-PS01 hatten wir festgelegt:
    "C:/Program Files/WindowsPowerShell/DscService/Modules"

Doch halt: Es genügt nicht, zum Publizieren die Skripte und Ressourcen einfach dorthin zu kopieren. Wir müssen sie vielmehr noch ein wenig aufbereiten.

Zurück zum Inhaltsverzeichnis...​

Aufbereiten der MOF-Konfigurationsdateien

Vor dem Kopieren einer MOF-Konfigurationsdatei in den ConfigurationPath müssen wir eine Prüfsummerndatei dafür erzeugen. Der Local Configuration Manager (LCM) kann damit die Konfiguration validieren. Zum Erzeugen einer Prüfsummendatei steht das CmdLet New-DSCChecksum zur Verfügung. Es erwartet als Parameter einen Pfad, in dem die MOF-Dateien liegen. Das CmdLet erzeugt für jede MOF-Datei in diesem Verzeichnis eine Prüfsummendatei mit dem Namen ConfigurationMOFName.mof.checksum, wobei ConfigurationMOFName der Name der Konfiguration ist. Die .MOF- und die zugehörige .checksum-Datei müssen nun zusammen in den ConfigurationPath des Pull Servers kopiert werden.

Wichtig: Wenn wir zu einem späteren Zeitpunkt eine Konfiguration ändern und damit eine neue .MOF-Datei erzeugen, müssen wir auch wieder eine neue .checksum-Datei dafür erzeugen!

Zurück zum Inhaltsverzeichnis...​

Aufbereiten der DSC Ressourcen Module

Jedes Powershell Modul mit DSC-Ressourcen muss in eine .ZIP-Datei mit folgender Namenskonvention gepackt werden: {Modulname}_{Moduleversion}.zip. Dummerweise kann man eine DSC-Ressource, wie man sie mit Install-Module aus der Powershell Gallery heruntergeladen hat, nicht einfach in eine .ZIP-Datei packen, da mit Powershell / WMF 5.0 durch die neu eingeführte Versionsverwaltung die interne Verzeichnisstruktur erweitert wurde. DSC-Ressourcen haben jetzt die Struktur:

'{Module Folder}/{Module Version}/DscResources/{DSC Resource Folder}/'

​wohingegen in der .ZIP-Datei die frühere Struktur

​'{Module Folder}/DscResources/{DSC Resource Folder}/'

(also ohne dem Verzeichnis {Module Version}) erwartet wird.​

Wir müssten also temprorär eine Kopie ohne dem Verzeichnis {Module Version} erzeugen, diese dann packen und den Namen der .ZIP-Datei an die geforderte Namenskonvention anpassen.

Und wie nicht anders zu erwarten, müssen wir auch für die .ZIP-Datei eine Prüfsummendatei erzeugen und dann in das Verzeichnis ModulePath auf dem Pull Server kopieren.

Zurück zum Inhaltsverzeichnis...​

Es geht einfacher...

Etwas mühsam, werden Sie sagen, insbesondere für die Aufbereitung der .ZIP-Dateien. Das müssen sich auch die Entwickler im Powershell Team gedacht haben und liefern mit der DSC-Ressource xPSDesiredStateConfiguration noch gleich ein zusätzliches Modul mit dem Namen PublishModulesAndMofsToPullServer.psm1. Es enthält eine Funktion mit dem Namen Publish-DSCModuleAndMof, die das mühsame Erzeugen der Prüfsummendateien und das Packen der DSC-Ressourcen in .ZIP-Dateien auf einen Funktionsaufruf reduziert und auch gleich die Ergebnisse in den entsprechenden Pfaden auf dem Pull Server publiziert.

Für unser Beispiel zum Aktivieren des Microsoft Updates verbinden Sie sich jetzt mit unserem Pull Server  DSC-PS01 über eine VM-Verbindung aus dem Hyper-V Manager, starten dort eine Powershell-Sitzung mit Administratorrechten, wechseln dort in das Verzeichnis C:/DSC/PullSetup und geben die folgenden Befehle ein:

Import-Module xPSDesiredStateConfiguration
Publish-DSCModuleAndMof -Source . -Force -Verbose

  • Beim Parameter -Source geben Sie das Verzeichnis an, in dem sich die aufzubereitenden Konfigurationen und DSC-Ressourcen befinden (hier das aktuelle Verzeichnis).
  • Durch die Angabe von -Force erzwingen Sie das Überschreiben bereits vorhandener älterer Versionen
  • Und mit -Verbose können Sie ein Protokoll im Konsolenfenster mitlaufen lassen.

Und als Ergebnis finden wir die benötigten Dateien im ModulePath bzw. ConfigurationPath auf dem Pull Server.

Damit stehen die Konfigurationen und Ressourcen auf dem Pull Server zum Abrufen durch Pull Clients bereit.

Zurück zum Inhaltsverzeichnis...​

Ein Pull Client

Wenn wir jetzt die Funktionalität unseres DSC Pull Servers testen wollen, benötigen wir einen DSC Pull Client. Ich erstelle mir dafür eine VM DSC-PC01 mit Windows Server 2016 als Betriebssystem nach der im Teil 2 meiner DSC-Artikel beschriebenen Methode. Ein entsprechendes Powershell Skript New-DSC-PC01_SetupFiles.ps1 zum Erzeugen der Verzeichnisstruktur und der Dateien finden Sie in der zum Download beigefügten .ZIP-Datei.

Im Setup-Verzeichnis dieser VM finden Sie nur noch Skripte zum Konfigurieren des Betriebssystems (OSconfig), des Local Configuration Managers (LCMconfig) sowie zum Initiieren der DSC-Konfiguration (SetupComplete.Cmd und RunDSC.ps1).

Um nun weitere (Anwendungs-) Konfigurationen von unserem Pull Server abzurufen, müssen wir dem Local Configuration Manager (LCM) des Pull Clients entsprechende Informationen mitgeben. Das LCMconfig-Skript sieht dann folgendermaßen aus:

  • Im Settings Block legen wir allgemeine Einstellungen für den LCM fest, wie z.B. die Zeitintervalle, nach denen der LCM immer aktiv wird, um die Konfigurationen zu prüfen und gegebenenfals automatisch zu korrigieren. Sie werden etwas verwundert sein über die Einstellung RefreshMode = 'Push', wo wir doch über einen Pull Client sprechen. Diese Einstellung ist für unser Beispiel ohne Bedeutung, da wir im Folgenden mit partiellen Konfigurationen arbeiten; und bei jeder partiellen Konfiguration müssen wir angeben, wie sie der LCM erhält (Push oder Pull).
  • im nächsten Block ConfigurationRepositoryWeb teilen wir dem LCM Informationen für den zu verwendenden Pull Server mit:
    • ServerURL: Dies ist die Endpunkt-Adresse einschließlich IP-Port des Pull Server Webdienstes, die wir beim Installieren des Pull Servers festgelegt haben (siehe "Die Anwendungskonfiguration (APPconfig) für unseren Web Pull Server DSC-PS01" im Teil 2)
    • RegistrationKey: Beim Installieren des Pull Servers haben wir eine GUID festgelegt, mit der sich Clients authentisieren müssen. Diese muss hier wieder angegeben werden.
    • AllowUnSecureConnection: Normalerweise erfolgt die Kommunikation mit dem Pull Server über verschlüsselte Verbindungen. Wir haben bei unserem Pull Server der Einfachheit halber darauf verzichtet und müssen dies hier jetzt dem LCM mitteilen.
    • Und dann müssen wir dem LCM über die Angabe ConfigurationNames noch mitteilen, welche der anschließend beschriebenen partiellen Konfigurationen er auf diesem Pull Server findet. Die Angabe ist ein String Array mit den Namen der abzurufenden Konfigurationen - in unserem Fall gibt es nur eine Konfiguration mit dem Namen EnableMSUpdate.

Falls wir Konfigurationen von verschiedenen Pull Servern abrufen wollen, können wir weitere ConfigurationRepositoryWeb-Blöcke hier definieren - natürlich jeweils mit unterschiedlichen Blocknamen.

  • Mit dem nächsten Block ReportServerWeb können wir dem LCM mitteilen, wo er Status-Informationen zu durchgeführten Aktionen ablegen soll. Dies ist eine Zusatz-Funktionalität eines Web Pull Servers, auf die ich später noch zurückkommen werde.
  • Jetzt folgen noch die partiellen Konfigurationen mit der Angabe, ob sie der LCM lokal vorfindet (RefreshMode='Push') oder von einem Pull Server abrufen soll ('RefreshMode = 'Pull'). Für Konfigurationen im Pull Modus ist dann noch ein Verweis auf den ConfigurationRepositoryWeb Block des zu verwendenden Pull Servers notwendig.
  • Und damit die partielle Konfiguration für das Setzen des Microsoft Updates erst abgearbeitet wird, wenn das Betriebssystem erfolgreich konfiguriert wurde, definieren wir noch mit DependsOn diese Abhängigkeit von der partiellen Konfiguration OSconfig.

Jetzt haben wir alle Teile für unseren Pull Client DSC-PC01 zusammen und können die VM unter Zuhilfenahme der schon im Teil 2 vorgestellten DSC-Konfiguration DSCHyperV_VM erstellen:

  1. Wechseln Sie in das DSC-Lab Verzeichnis
  2. Laden Sie das Konfigurationsskript per Dot Sourcing in den globalen Arbeitsbereich der Powershell ISE Sitzung
  3. . ./DSCHyperV_VM0.ps1

  4. Kompilieren Sie das Skript mit folgendem Befehl
  5. DSCHyperV_VM -VMname DSC-PC01 -ParentVhdPath `
        E:/Hyper-V/WS2016_GPT_DCGUI.vhdx -OutputPath ./DSC-PC01 -Verbose

  6. Starten Sie die Konfiguration der VM
  7. Start-DscConfiguration -wait -force -Verbose -Path ./DSC-PC01

Nachdem die VM gestartet wurde, können Sie über eine VM Verbindung vom lokalen Hyper-V Manager zum Pull Client DSC-PC01 den Erstellungsvorgang mit verfolgen - wobei allerdings außer einigen automatischen Neustarts nichts Spektakuläres passiert. Melden Sie sich dann als lokaler Administrator an und rufen in den Settings die Kategorie Update & Security auf. Klicken Sie dort auf Advanced Options. Im nächsten Fenster sollte jetzt die Option Give me updates for other Microsoft products when I update Windows aktiviert sein.

Um zu überprüfen, ob der LCM auch regelmäßig seinen Dienst versieht, können Sie die Option für den Microsoft Update deaktivieren. Schließen Sie das Fenster mit den Advanced Options bzw. gehen zurück auf die Startseite von Update & Security und warten ... die Zeit ist abhängig von den Angaben im Settings- Block des LCM (in unserem Beispiel bis zu 60 Minuten).

Wenn Sie nicht so lange warten wollen, können Sie auf dem Pull Client auch einen Refresh erzwingen durch Eingabe des Befehls

Start-DscConfiguration -Wait -Force -Verbose -UseExisting

Wenn Sie danach die Advanced Options erneut aufrufen, werden Sie feststellen, dass die Option für den Microsoft Update wieder aktiviert ist.

Zurück zum Inhaltsverzeichnis...​

Der Pull Server als Report Server

Ein DSC Web Pull Server stellt nicht nur DSC-Konfigurationen bereit zur Nutzung durch Pull Clients, er kann auch als Report Server für Pull Clients arbeiten. Diese Funktionalität ist immer aktiviert, es sind also keine besonderen Konfigurationen am Pull Server notwendig.

Zurück zum Inhaltsverzeichnis...​

Senden von Report Daten

Ob ein Pull Client Status Meldungen an einen Report Server senden soll und an welchen, kann man in der LCM-Konfiguration durch den Ressourcen-Block ReportServerWeb festlegen.

Darin ist eigentlich nur eine Angabe notwendig, nämlich die URL des Pull Servers, an den Statusdaten gesendet werden soll. Das muss nicht der gleiche Pull Server sein, von dem auch die Konfigurationen geholt werden (wie in unserem Beispiel).

Für den Fall, dass die Statusdaten an einen anderen Server gesendet werden sollen, muss außerdem noch dessen RegistrationKey hinterlegt werden.​ Bei unserem Beispiel können wir darauf verzichten, da hier Pull und Report Server identisch sind. Der LCM verwendet dann den RegistrationKey aus dem ConfigurationRepositoryWeb-Block.

In unserer Testumgebung haben wir beim Pull Server auch festgelegt, dass ohne Verschlüsselung gearbeitet werden soll. Deshalb müssen wir bei der Definition des Report Servers dies dem LCM durch die Angabe von AllowUnsecureConnection = $true mitteilen.

Zurück zum Inhaltsverzeichnis...​

Auswerten der Report Daten

Die Statusdaten der Pull Clients werden in einer internen Datenbank auf dem Web Pull Server verwaltet. Sie können durch Funktionsaufrufe (Web Requests) an den Webdienst abgerufen werden. Bei diesen Aufrufen muss die AgentID des Local Configuration Magers auf dem gewünschten Pull Clients angegeben werden. Diese AgentID versteckt sich in den Eigenschaften des LCM auf dem jeweiligen Client und kann dort mit dem CmdLet Get-DscLocalConfigurationManager (Alias: glcm) ermittelt werden:

... oder direkt:

Mit der nachstehenden Powershell Funktion GetReport (Quelle: MSDN) kann man nun die Statusdaten eines Pull Clients abrufen:

Die Funktion liefert ein Array von JSON-Objekten zurück, die man mit einigen weiteren Befehlen aufbereiten kann. Das folgende Skript zeigt, wie man z.B. von unserem Hyper-V Host aus die AgentID des Pull Clients DSC-PC01 ermitteln kann, dann damit die Statusdaten vom Pull Server abruft, sie nach dem Startdatum sortiert und dann das Ergebnis des letzten LCM-Laufs anzeigen kann.

Hinweis: Das vollständige Skript finden Sie in der zu diesem Blogpost gehörenden .ZIP-Datei.

Wenn wir dieses Skript ausführen, erhalten wir etwa die folgende Anzeige:

Damit können wir uns schnell einen Überblick über die letzten DSC-Aktionen auf einem Pull Client verschaffen. Bei Problemen ist dies natürlich nicht unbedingt ausreichend. Dann muss man auf weitergehende Methoden zurückgreifen, wie ich sie z.B. schon im Teil 2 im Abschnitt "Troubleshooting" beschrieben habe.

Zurück zum Inhaltsverzeichnis...​

Wie geht's weiter?

Mit diesem Beitrag habe ich gezeigt, wie man einen zentralen DSC Web Pull Server bestücken und nutzen kann. Nun sind Sie als Anwender bzw. Administrator gefordert, weiterführende Szenarien mit DSC zu entwerfen und umzusetzen. Ich werde natürlich auch am Ball bleiben und hier weiter über interessante DSC-Projekte berichten.

Zurück zum Inhaltsverzeichnis...​

Downloads

In diesem Beitrag (und auch schon im Teil 2) sind eine Menge an Powershell Skripten beschrieben. Auf Grund von Sicherheitsbeschränkungen​ der Blog-Software können diese leider nicht direkt im Quellcode dargestellt weden, sondern nur als Screenshots. Um Ihnen lästige Tipparbeit beim Nachvollziehen der Szenarien zu ersparen, habe ich die Skripte in eine .ZIP-Datei gepackt, die Sie hier herunterladen können. Bitte beachten Sie, dass die Skripte auf meine Test- und Entwicklungsumgebung ausgerichtet sind. Falls Sie eine andere Systemumgebung verwenden, müssen Sie gegebenenfalls an der einen oder anderen Stelle Laufwerks- und / oder Pfadangaben anpassen.

Die Datei DSC-Lab.ZIP enthält sowohl die Skripte dieses Beitrags als auch die aus dem vorangegangenen Teil 2. Bitte beachten Sie auch die Hinweise in der enthaltenen Datei Readme.rtf.

Zurück zum Inhaltsverzeichnis...​

Links

Eigene Blogbeiträge:​

DSC allgemein:

Zurück zum Inhaltsverzeichnis...​

Der Beitrag Desired State Configuration (DSC) und Windows Server 2016 – Teil 3: Pull Clients erschien zuerst auf Hyper-V Server Blog.

Hans Brender: OneDrive for Business | erweitertes Dateimanagement | Verschieben

OneDrive for Business, Microsoft

SharePoint Online  Bibliothek: Verschieben nach

Chris McNulty, Microsoft und ExMVP hat  in Microsoft Tech Community unter SharePoint weitere Details beschrieben beschrieben:

Die von mir beschriebenen Änderungen wurde erweitert:

Das Limit von 50 MB beim Kopieren wurde auf 500 MB angehoben

Es kann jetzt auch innerhalb einer Bibliothek kopiert werden, dann wird eine Datei mit einer Nummer am Ende des Datei-Namens erzeugt.

Diese Änderungen erfolgen zuerst im First Release und anschließend an allen Office 365 Tenants!

Bewegen von Dateien

Hier musste Microsoft leider erst einmal einen Rückzieher machen, das funktioniert derzeit nicht von OneDrive for Business zu SharePoint (Team Sites oder Groups). Aber bei meinem letzten Gespräch mit Chris McNulty in Frankfurt  hat er mir gesagt, das Microsoft daran arbeitet, die Move Funktion komplett mit Meta-Daten und File-Historie zu versehen.


faq-o-matic: Borg AD-Standortdoku: (endlich) eine neue Version

Nach vielen Jahren habe ich mein Skript “Borg” aktualisiert, das Standorte und die Replikationskonfiguration des Active Directory dokumentiert.

Die neue Version 1.1 korrigiert einen Fehler, durch den praktisch alle Domänencontroller als Global Catalog Server ausgegeben wurden, auch wenn sie dies nicht waren. Außerdem kennt die neue Fassung nun auch die AD-Betriebsmodi nach Windows Server 2003.

Note: There is a file embedded within this post, please visit this post to download the file.

Arnd Rößner: Microsoft verschiebt Februar-Patches in den März

Microsoft verschiebt Februar-Patches in den März – heise online Viele Grüße Arnd Rößner

Hans Brender: OneDrive for Business | new Version 17.3.6798.0207

a new version of the Next Generation Sync Client is available

Microsoft has pressed the button. Silently and secretly. I’ve been waiting two days, but until today Microsoft has not published a change log. I have received isolated messages after the update of Next Generation Sync Client (NGSC). After the update and the first start, the NGSC has crashed. For me the NGSC has automatically raised on three different devices to version 17.3.6798.0207 and I have no problems with Windows 8.1 and Windows 10.

For those, who do not know: You, or your admin do not have to do anything. The NGSC will be automated updated, if Microsoft press the Button. If Microsoft has done some changes on OneDrive for Business, OneDrive or SharePoint Online AND they also need changes on the client, the can initiate the update. No Admin required. But You may update your machine  to another version, doing it manually

For those people Microsoft has published a change log, but I have written above, there is no change log to this version, only for the old versions.*)

But I do have my own change log over all versions

OneDrive for Business | Next Generation Sync Client (all Versions)

and here you will have also the possibility to download **) the different versions. (I do not own a Mac, therefore this time no MAC Download)

Somehow the worm is in Microsoft. First no security updates, then a new NGSC version, but no publication. Let’s hope it gets better.

 

*)[Update 02/18/17]

Microsoft has published  a new entry in the change log. There are so many versions between 6743 and 6798, but the only statement from Microsoft is: “Fixed the top issues related to sync reliability and application stability.”

**)There are 3 locations, where you are able to download the NGSC Client from Microsoft and install it manually, but that’s not the latest version

Location Version
New OneDrive sync client release notes 17.3.6743.1212
Enable users to sync SharePoint Files with the new OneDrive sync client 17.3.6743.1212
OneDrive for Windows 17.3.6743.1212

Hans Brender: OneDrive for Business | neue Version 17.3.6798.0207

neuer NGSC Client zur Synchronisation mit Office 365

Still und heimlich hat Microsoft auf den Knopf gedrückt. Ich habe jetzt zwei Tage gewartet, aber bis heute hat Microsoft kein Change-Log veröffentlicht. Ich habe vereinzelt  Meldungen erhalten, dass nach dem Update der Next Generation Sync Client (NGSC) gestartet und sich sofort verabschiedet hat. Bei mir hat sich der NGSC an drei verschiedenen Geräten automatisch auf die Version 17.3.6798.0207 angehoben und ich habe unter Windows 8.1 und Windows 10 keine Probleme.

Wie schon öfter beschrieben, wird der NGSC automatisch auf eine neue Version angehoben, wenn Microsoft auf den Knopf drückt. Damit kann sowohl Änderungen, die Microsoft auf OneDrive for Business, OneDrive oder in SharePoint Online durchführt UND die eine Änderung am Client benötigen, durch ein Update auf dem Client auslösen. Ein Administrator muss nichts tun. Selbstverständlich kann man das Update auch selbst durchführen und den Client manuell herunterladen.

Microsoft hat dafür eine eigene Seite mit den Änderungen veröffentlicht, aber wie oben beschrieben, hier gibt es nur alte Versionen *)

Ich führe aber auch eigenes Change-Log über alle Versionen

OneDrive for Business | Next Generation Sync Client (alle Versionen)

und dort kann man weiter unten in der Tabelle auch die jeweiligen gewünschte Version herunterladen **) und installieren. (Da ich keinen MAC habe, kann ich hier kein Download anbieten)

 

Irgendwie ist der Wurm drin bei Microsoft. Erst keine Sicherheitsupdates, dann eine neue NGSC Version, aber keine Veröffentlichung. Hoffen wir, dass es besser wird.

*) [Update 18.02.17]

Die englische Change-Log Seite hat inzwischen ein Update erfahren. Ich gehe davon aus, dass die Seite nun auch übersetzt in der nächsten Woche das Update erhält.

Was mich allerdings wundert ist die Tatsache, dass zwischen Version 6743 und 6798  so viele Versionen erstellt wurden und Microsoft nur eine einzelne Zeile für die neuste Version spendiert: “Die wichtigsten Probleme im Zusammenhang mit Synchronisierungssicherheit und Anwendungsstabilität wurden behoben."

**) Es gibt derzeit 3 Orte, von denen man die neuste Version des NGSC herunterladen kann.

Ort Version
Neuer OneDrive-Synchronisierungsclient – Anmerkungen zu dieser Version 17.3.6743.1212
Aktivieren von Benutzern zum Synchronisieren von SharePoint-Dateien mit dem neuen OneDrive-Synchronisierungsclient 17.3.6743.1212
OneDrive für Windows 17.3.6743.1212

Thorsten Christoffers: Webinar: Full control of the cloud with Azure Operations Management Suite and Log Analytics - security, performance and scalability of solutions

On February 1st I had the chance to give a webinar focused on Azure OMS Log Analytics. Log Analytics is Microsoft’s big-data solution in Azure. ...

Arnd Rößner: KPMG und Microsoft arbeiten bei Blockchain global zusammen Erstes gemeinsames Innovationszentrum in Frankfurt gestartet

KPMG und Microsoft haben in Frankfurt das erste von drei gemeinsamen Innovationszentren namens „The KPMG & Microsoft Blockchain Node“ (Knotenpunkt) gestartet, das Unternehmen Anwendungsmöglichkeiten der Blockchain-Technologie aufzeigen und diese für sie nutzbar machen will. Ab sofort analysieren Experten beider Unternehmen gemeinsam Geschäftsprozesse und -modelle unterschiedlichster Branchen dahingehend, ob und inwieweit diese sich mittels Blockchain-Technologie optimieren […]

faq-o-matic: ADFS: Den Systemzustand per PowerShell prüfen

Microsoft hat in der TechNet Gallery ein hilfreiches PowerShell-Modul veröffentlicht, das den Zustand einer ADFS-Installation überprüft. Es handelt sich um dieselbe Komponente, die auch innerhalb von Azure eingesetzt wird. Der folgende Blogbeitrag gibt einen Überblick:

[Under the hood tour of Azure AD Connect Health: AD FS Diagnostics Module &#8211; Azure AD Customer Experience Engineering Team]
https://blogs.technet.microsoft.com/aadceeteam/2015/02/13/under-the-hood-tour-of-azure-ad-connect-health-ad-fs-diagnostics-module/

Hier ist der Download:

[Skript AD FS Diagnostics Module]
https://gallery.technet.microsoft.com/scriptcenter/AD-FS-Diagnostics-Module-8269de31

Carsten Rachfahl [Hyper-V]: Videointerview mit Ben Armstrong über Hyper-V in Windows Server 2016

Auf der Microsoft Ignite 2016 in Atlanta hatte ich das Vergnügen Ben Armstrong mal wieder vor die Kamera zu bekommen. Einige von euch wissen vielleicht das ich ein großer Fan von Ben bin für mich ist er einfach nur Mr. Hyper-V. Deswegen freue ich mich um so mehr das sich Ben für das Interview fast 30 Minuten Zeit genommen hat!

Ben spricht in dem Interview über folgende Punkte und gibt dazu viele Detailinformationen:

  • ​Sein Ignite 2016 Demo Deployment Script
  • Nested Virtualisation
  • VM Security
  • Key Storage Drive
  • Credential Guard
  • PowerShell Direct
  • Storage QoS
  • Discrete Device Assignment
  • Remote FX
  • Die neuen Support Zahlen von Windows Server 2016 und Hyper-V

Ben ist der Microsoft Keynote Sprecher der  

Cloud & DataCenter Confernce 2017!


Ich bin echt super happy das wir Ben Armstrong auch für die diesjährige Cloud & DataCenter Conference Germany als Sprecher gewinnen konnten.

Wenn Ihr noch nicht zur CDC-Germany 2017 angemeldet seid, dann wird es aber höchste Zeit!

Der Beitrag Videointerview mit Ben Armstrong über Hyper-V in Windows Server 2016 erschien zuerst auf Hyper-V Server Blog.

Michael Greth: Live The Business of IoT - Transportation

The Business of IoT: Transportation


On Tuesday February 14th at 19:00 CET live from the Factory Berlin
presented by relayr and SharePointPodcast we will broadcast the meetup at iotcamp.de via Facebook live.

 

SPEAKER

Michal Kraus, Marketing Director at Proximetry, part of relayr
Olga Willner, IT and Technology Management at DB Station&Service AG

AGENDA

19.00 - Welcome by the relayr team
19:05 - Proximetry: Internet of Important Things - a drive for the future of Transportation // Michal Kraus
19:30 -DB Station&Service AG: The hackable train station - how IoT spurs innovation at Deutsche Bahn // Olga Willner
19:55 - Open discussion - Q&A

Hans Brender: OneDrive | reduzierter Speicherplatz wegen Wegfall Bing-Bonus

OneDrive, Microsoft

Die Zeiten von riesigem, unentgeltlichen OneDrive Speicher sind vorbei. Zumindest mit den unentgeltlichen. So wurde bei mir jetzt der 100 GB BING Bonus gestrichen.

OneDrive (Personal) Speicher  verkleinert

Was tun, wenn man mit seinem Speicher schon über kostenlosen 15 GB und dem möglichen Loyalitätsbonus von 10 GB ist?

Bleibt nur das kostenpflichtige Upgrade:

50 GB für 2 € im Monat. Oder Office 365 Home (z.B. für die Familie) oder Office 365 Personal heraus. Bei Microsoft kosten diese 10€ oder 7€ monatlich

Dafür bekommt man dann :

Upgrade nach Preis OneDrive (Personal) Speicher
50 GB Speicher 2 € /Monat vorhandener Speicher + 50 GB
Office 365 Home 10 €/Monat 5 TB ( 1TB pro Person)
Office 365 Personal 7 €/Monat 1 TB

Bei beiden Office 365 Paketen gibt es natürlich die neuen Versionen von Word, Excel,PowerPoint,OneNote, Outlook… dazu.

Die Preise sind von Microsoft, die Straßenpreise liegen oftmals darunter.


Arnd Rößner: Wsuspraxis.de Down

Leider war wegen einem Fehler bei meinem Hoster die Webseite ein paar Tage nicht verfügbar. Nun ist wieder alles in Ordnung.  Viele Grüße Arnd Rössner 

faq-o-matic: Cloud & Datacenter Conference Germany: Auf zur zweiten Runde!

imageNach der überwältigenden Resonanz zur CDC-Germany 2016 findet die CDC-Germany 2017 zum zweiten Mal vom 04.-05. Mai 2017 statt. Als Veranstaltungsort haben sich Carsten Rachfahl und sein Team diesmal das neue Microsoft-Office in München-Schwabing ausgesucht. Für zwei Tage kommen ausgewählte Experten aus Deutschland, Europa und Übersee zusammen und geben Einblick in ihr Wissen. Themenschwerpunkt sind die Microsoft-Softwarelösungen für die Public, Hybrid und vor allem die Private Cloud.

Sichert euch eines der begehrten und begrenzten Tickets für die diesjährige CDC-Germany und nutzt die Chance auf Wissen aus erster Hand! Zwei Tage lang gilt noch der stark reduzierte Early-Bird-Tarif – aber keine Angst, auch der Originalpreis ist mit 369 Euro sehr günstig.

[Cloud & Datacenter Conference Germany – Die Zukunft Ihrer IT gestalten]
https://www.cdc-germany.de/

Carsten Rachfahl [Hyper-V]: Hyper-V Amigos Showcast Episode 14 – RemoteFX und DDA

In dieser Folge des Hyper-V Amigos Showcast (den wir schon vor Wheinachten aufgenommen haben) sprechen und zeigen Diedier und ich ein neue fantastische Möglichkeit PCI Devices direct in Virtuelle Machine einzublenden. Damit kann man z.B. NVMe Flash aber auch GPUs direkt VMs zurverfügungstellen und damit bisher nicht gekannte Performance für VMs bereitstellen. Desweiteren vergleichen wir RemoteFX mit DDA.

Schaut euch die Episode an und lernt wie man Device zuordnet und in VMs nutzt.


Der Beitrag Hyper-V Amigos Showcast Episode 14 – RemoteFX und DDA erschien zuerst auf Hyper-V Server Blog.

Hans Brender: Azzure Munich Meetup – OneDrive Deep Dive

AzureMunichMeetup OneDrive, Microsoft
OneDrive for Business, Microsoft

Am 18.4.2017 ist es soweit. Dann bin ich dabei, auf dem Azure Munich Meetup in München. Wir sind zu Gast bei Microsoft.  Mein MVP Kollege Markus Klein wird uns etwas zu Azure Stack erzählen und von mir gibt es

OneDrive Deep Dive

Und manch einer wird sich fragen, was hat den OneDrive / OneDrive for Business mit Azure zu tun. Nun die Auflösung gibt’s am 18.4.2017 ab 19:00 Uhr  in der Deutschland Zentrale von Microsoft in München

Und hier geht’s zur Anmeldung

(und für die Microsoft Kollegen im Haus, wenn ihr teilnehmen möchtet, bitte ebenfalls anmelden. Danke)


Michael Greth: Pimp my SharePoint Formulare

In einer Videoserie stelle ichdie wesentlichen Funktionen der KWizCom Forms App und der Custom Actions vor und zeige in 6 Schritten an einem konkreten Beispiel, wie Business-User ohne Programmierkenntnisse schnell und einfach ihre Anwendungsszenarien umsetzen können.

Weiterführende Links 

Video Demos

Demo Einführung

Demo 1 Felder dynamisch anzeigen/verbergen

Demo 2 Multi-Tab, mehrspaltige Formulare

Demo 3 Kaskadierende Felder

Demo 4 Dynamische Validierung

Demo 5 Automatisierung

Demo 6 Erweiterte Custom Actions

Installation

Slides

Versionsvergleich KWizCom Forms App

Arnd Rößner: Microsoft stellt Entwicklern neue Tools für die Integration von künstlicher Intelligenz (KI) in eigene Anwendungen zur Verfügung

Mit künstlicher Intelligenz Dialekte und Fachsprache erkennen, Störgeräusche rausfiltern sowie Texte, Bilder und Videos maschinell auf kritische Inhalte untersuchen Microsoft hat drei neue Cognitive Services für die Integration von KI-Technologien in Anwendungen von Drittanbietern angekündigt: Der ab sofort verfügbare Custom Speech Service, erkennt Sprache in unterschiedlich lauten Umgebungen sowie dialektisch, mundartlich oder fachlich gefärbte Formulierungen. […]

Carsten Rachfahl [Hyper-V]: Videointerview mit Marc van Eijk über Azure Resource Manager

Ende September auf der Ignite in Atlanta hatte ich wieder meine Kamera dabei und bekam einen alten Bekannten davor: Marc van Eijk. Mark bin Mai 2016 ein Azure MVP und wechelte zu Microsfot ins CAT Team. Marc und ich sprechen in dem Interview über Azure Resource Manager Templates und warum ich diese "Fremdsprache" unbedingt lernen soll. Ich hatte sehr viel Spaß und Ihr hoffentlich auch.

Überigens wer Marc mal live auf der Bühne sehen möchte, er hat einen Slot auf der Cloud & Datacenter Conference Germany 2017.

Der Beitrag Videointerview mit Marc van Eijk über Azure Resource Manager erschien zuerst auf Hyper-V Server Blog.

faq-o-matic: NTFS und ReFS: Wissenswertes zu Cluster-Größen

Während es in der Community zunehmend Unsicherheit über den Reifegrad und die Einsetzbarkeit von ReFS gibt, hat Microsoft eine ausführliche Darstellung veröffentlicht, was man zu den Clustergrößen der Dateisysteme in verschiedenen Szenarien wissen sollte.

Die Empfehlungen zu NTFS lassen sich auf zwei Faustregeln eindampfen:

  • Clustergrößen sollten nicht geringer sein als 4 KB (4096 Bytes). Das ist der Wert, den der Explorer vorschlägt, das Minimum wären 512 Bytes.
  • Wenn hauptsächlich große Dateien gespeichert werden (z.B. bei SQL Servern oder Hyper-V-Hosts), sollte das Maximum von 64 KB als Clustergröße gewählt werden.

[Cluster size recommendations for ReFS and NTFS | Server Storage at Microsoft]
https://blogs.technet.microsoft.com/filecab/2017/01/13/cluster-size-recommendations-for-refs-and-ntfs/

Arnd Rößner: Biometrie & Co: Wie sicher sind Passwort-Alternativen?

Biometrie & Co: Wie sicher sind Passwort-Alternativen? – Microsoft Technet

Marc Grote: Network Controller Deployment mit System Center 2016 Virtual Machine Manager – Teil 1

Hallo Leutz,

das folgende Bilderbuch zeigt das Deployment des Network Controller mit Hilfe des System Center 2016 Virtual Machine Manager. Teil 2 beschaeftigt sich dann mit den Moeglichkeiten des Netzwerk Controllers.
Download: http://www.it-training-grote.de/download/NetworkController-VMM.pdf/

Gruss Marc

Marc Grote: Nano Server Management mit System Center 2016 Virtual Machine Manager

Hallo Leutz,

das folgende Bilderbuch zeigt die Verwaltung von Nano Server mit Hilfe des System Center 2016 Virtual Machine Manager und den Microsoft Azure Server Verwaltungs-Tools.

Download: http://www.it-consulting-grote.de/download/Nano-VMM.pdf/

Gruss Marc

Marc Grote: Storage Spaces Direct (S2D) Implementierung mit System Center 2016 Virtual Machine Manager

Hallo Leutz,

das folgende Bilderbuch zeigt die Einrichtung eines Storage Spaces Direct (S2D) Cluster mit Hilfe des System Center 2016 Virtual Machine Manager

Download: http://www.it-consulting-grote.de/download/S2D-VMM.pdf/

Gruss Marc

faq-o-matic: Biometrie statt Kennwort – wirklich sicherer?

Microsofts Sicherheitsexperte Michael Kranawetter hat in einem sehr lesenswerten Blogpost beleuchtet, ob sich biometrische Verfahren wirklich als bessere Alternativen zu Kennwörtern eignen:

[Biometrie & Co: Wie sicher sind Passwort-Alternativen? – TechNet Blog Deutschland]
https://blogs.technet.microsoft.com/germany/2017/01/12/biometrie-co-wie-sicher-sind-passwort-alternativen/

Hans Brender: European Collaboration Summit 2017 | Ich bin dabei

European Collaboration Summit 2017, Zagreb, Craotia, May 29-31

29.-31. Mai 2017. Drei Tage Ende Mai in Kroatien. Genauer gesagt in Zagreb. Dort findet der

European Collaboration Summit 2017

statt. Ein Community Event. Mit hochkarätigen Sprechern aus der ganzen Welt. Diese  werden dort Informationen zu Office 365, Azure, SharePoint, Exchange, Skype und Projekt weitergegeben.

Und ich freue mich, dass ich dabei sein werde.

Hans Brender spricht über Sync-Tools zur Cloud

Sieht man sich dort?


SharePointPodcast: SPPD362 – Talkin‘ Insights mit Markus Raatz


Zum sechzehnten Male heißt es im SharePointPodcast „Talkin‘ Insights“ mit BI- und Daten-Spezialist Markus Raatz. Diesmal geht es um das SQL Server 2016 SP1, das Common Data Model, IoT und Azure Analysis Services.

Tipps

Links

Flattr this!

Arnd Rößner: Spruch / Sinnbild des Monats

Wenn du denkst, Bildung ist zu teuer, versuch’s mit Dummheit (“If you think education is expensive, try ignorance.”) Derek Bok (*1930), Präs. Harvard Universität (USA) a.D.

faq-o-matic: Hyper-V 2016: VMs erfahren die “echte” Netzwerkgeschwindigkeit

imageAuf eine Neuerung in Hyper-V unter Windows Server 2016 weist der MVP-Kollege Didier Van Hoye hin: Virtuelle Maschinen bekommen nun vom Host die “reale” Geschwindigkeit ihrer Netzwerkverbindung gemeldet. In den früheren Hyper-V-Versionen haben VMs immer 10-Gigabit-Verbindungen gesehen, auch wenn das Netzwerk tatsächlich viel schneller oder langsamer war.

Dabei führt Hyper-V keine aufwändigen Messungen durch, sondern berechnet den nominellen Durchsatz der physischen Netzwerkkarten, die an den “zuständigen” virtuellen Switch gebunden sind. Ein Team aus zwei 10-Gigabit-Karten wird an die VMs also als 20 Gbit/s gemeldet, eine einzelne Gigabit-Karte als 1 Gbit/s.

[vNIC Speed in guests on Windows Server 2016 Hyper-V – Working Hard In IT]
https://blog.workinghardinit.work/2017/01/03/vnic-speed-in-guests-on-windows-server-2016-hyper-v/

Hans Brender: SharePoint Online | Download multiple Files

Zipping, OneDrive for Business, Download

Sometimes it’s easy. You have to wait. And here the Big Brother have learned from his little brother. I’m speaking about OneDrive for Business and OneDrive (Personal). In OneDrive (Personal) the functionality of automatically packing files into a zip file, if you select more than one file and the Download was implemented a long time ago.

1 Select more than one file
2 Click on Download
3 All selected files are zipped into a file OneDrive_XXXX.XX-XX.zip and you may save it. The message differs depending on the browser and its settings,

Microsoft rolled out this new function to all tenants. Thank you Microsoft, why not earlier.


Carsten Rachfahl [Hyper-V]: Veeam Webinar zu ReFS in Server 2016

Wann: Dienstag den 31. Januar um 10 Uhr

Dienstag 10 Uhr hält Jan Kappen gemeinsam mit Andreas Neufert von der Firma Veeam ein Webinar mit dem Titel "Microsoft ReFS 3.1 als Veeam Backup & Replication Backup Target". Basis für das Webinar ist ein Whitepaper das Jan zusammen mit der Firma Veeam zu ReFS geschrieben hat.

Einige Highligts daraus sind:

  • ReFS Vorteile gegenüber NTFS
  • ReFS Block Cloning
  • ReFS Integrity Streams
  • ReFS und Sicherungsgeschwindigkeit 

Also wer an ReFS 3.1 und speziell an dem Einsatz in Backup Lösungen interessiert ist, der sollte sich das Webinar nicht entgehen lassen.​

Der Beitrag Veeam Webinar zu ReFS in Server 2016 erschien zuerst auf Hyper-V Server Blog.

Hans Brender: Next Generation Sync Client – Technologie

Es ist schon ein paar Tage her,seit dem wir in der Lage sind, Dokumente und Dateien in SharePoint auf den lokalen PC zu synchronisieren. Die alte Technologie (Groove.exe) und die neue Technologie des Next Generation Sync Client versetzt uns in die Lage, diese Dateien sicher zwischen der Cloud und einem lokalen Gerät zu übertragen und die Bearbeitung mit mehreren Personen zu initiieren. Die neuen Client-Programme wie Word, Excel und PowerPoint oder aber die Online Versionen sind inzwischen mit erweiterten Möglichkeiten ausgestattet, so dass z.B. auch das gleichzeitige Bearbeiten von Dokumenten möglich ist. Aus der Vergangenheit hat Microsoft viel gelernt. Und das beste in den Next Generation Snyc Client implementiert.

Grundsätzlich werden zwei verschiedene  Technologien verwendet. BITS und MS-FSSHTTP.
BITS steht für Background Intelligent Transfer Service aus dem Jahr 2001 und MS-FSSHTTP File Synchronization via SOAP over HTTP Protocol aus dem Jahr 2009. Schon im alten Synchronisations-Client “Groove” war diese Technik implementiert und wurde mit Office 2010 benutzt.

Vereinfacht ausgedrückt wird BITS immer dann benutzt, wenn es sich nicht um ein Office Dokument handelt.

Next Generation Sync Client: MS-FSHTTP Protokoll

Denn bei Dateien wie Bildern aus unterschiedlichen Formaten wird die Datei komplett übertragen. Das soll sicher und an die jeweilige Bandbreite angepasst passieren.

Sind Office Dateien im Spiel, dann komm MS-FSHTTP zum Einsatz. Denn wenn ich ein Dokument überarbeite, wird das Dokument nicht noch einmal komplett übertragen, sondernd nur die Änderungen.

Next Generation Sync Client: MS-FSHTTP Protokoll

Für den Benutzer kommt das Microsoft Office Upload Center ins Spiel, das uns bei Konflikten hilft, diese aufzulösen.

Office 2016 (oder Office 365 Pro Plus

Egal, wie Sie ein Dokument mit Office 2016 öffnen (Datei öffnen, Zuletzt verwendetes Dokument, Doppel-Klick auf lokal synchronisiertes Dokument oder einen Klick auf die URL, es wird immer die synchronisierte Datei geöffnet. Sollten z.B. Änderungen von einem anderen Benutzer durchgeführt worden sein, werden diese Änderungen asynchron heruntergeladen und dem vorhandenem Dokument hinzugefügt.

Next Generation Sync Client: Eigenschaften und Office Und beim Speichervorgang wird genauso verfahren. Zuerst wird lokal gespeichert. Besteht keine Internetverbindung wird genau so verfahren. Allerding versucht der NGSC das Dokument wieder mit der Cloud zu synchronisieren, wenn die Internetverbindung wieder besteht. Und selbstverständlich versucht Office mit Dateien, die bereits geöffnet sind, diese in das Konzept der möglichen gleichzeitigen Bearbeitung eines Dokument zu integrieren.

Dabei ist diese Bearbeitung nicht konfliktfrei.Es gibt unzählige Varianten wie verschiedene Office Versionen im Einsatz etc. und es wird zuerst versucht, den Konflikt zu lösen. Auch hier stehen dem Anwender mehrere Möglichkeiten zur Verfügung.

Die Office Integration mit dem OneDrive Next Generation Snyc Client funktioniert mit der Office Klick 2 Run Version 16.0.7167.2001 oder höher bzw. bei der Installation als MSI-Paket Version 16.0.4432.1000 oder höher.


faq-o-matic: Hyper-V: Die Konfigurationsdatei einer VM finden

Hyper-V speichert die Konfiguration einer VM in einer Datei, die das System manchmal auch schlicht als “Virtueller Computer” bezeichnet. Bis Windows Server 2012 R2 handelte es sich dabei um eine XML-Datei, ab Windows Server 2016 ist es eine Binärdatei mit der Erweiterung VMCX.

Leider ist es nicht ganz einfach, den Speicherort dieser Datei ausfindig zu machen, denn in der grafischen Oberfläche zeigt Hyper-V ihn nirgends an. Wenn man beim Erzeugen der VM nicht aufmerksam ist, liegt sie u.U. an einem Ort, der nicht ganz offensichtlich ist. Wer etwa die Grundeinstellung von Hyper-V übernommen hat und beim Erzeugen einer VM nichts anderes angibt, speichert die VM-Konfigurationen unter C:\ProgramData\Microsoft\Windows\Hyper-V – schlauerweise kommt man an den Ordner nicht ohne Weiteres mit dem Explorer ran, weil dieser mit den Berechtigungen dort nicht umgehen kann.

Ein älterer Artikel beschreibt die Logik, nach der Hyper-V seine Dateien ablegt, sehr umfassend und (bis auf die Dateinamenerweiterungen) auch weiterhin zutreffend:

[Understanding where your virtual machine files are [Hyper-V] | Ben Armstrong’s Virtualization Blog]
https://blogs.msdn.microsoft.com/virtual_pc_guy/2010/03/10/understanding-where-your-virtual-machine-files-are-hyper-v/

Tatsächlich gibt es eine relativ einfache Möglichkeit, die Konfigurationsdatei zu finden – aber nur in der PowerShell. Dort ist der Ordnerpfad über das Cmdlet Get-VM im Attribut ConfigurationLocation zu finden. Der eigentliche Dateiname entspricht dann der GUID der VM plus Erweiterung.

Äh – sagte ich “relativ einfach”? Smiley mit geöffnetem Mund

Das folgende PowerShell-Skript zeigt den vollen Pfad an, wenn man ihm den Namen der VM gibt. Man führt das Skript direkt auf dem Host aus.

$VMName = Read-Host 'Enter VM name'
# get VM data
$VMData = Get-VM $VMName -ErrorAction SilentlyContinue
if (!$VMData) {
"VM $VMName not found."
Return
}
# get config details
$VMConfLoc = $VMData.ConfigurationLocation
$VMGUID = $VMData.VMId
$VMVer = $VMData.Version
# select file name extension: XML until version 5.0, VMCX later
"VM $VMName version is: $VMVer"
if ($VMVer -ge '6.0') {
$VMConfExt = 'vmcx'
} else {
$VMConfExt = 'xml'
}
# create full VM config file path
$VMConfDefPath = $VMConfLoc + '\Virtual Machines\' + $VMGUID + '.' + $VMConfExt
# check if the file exists
$CheckDefPath = Get-Item $VMConfDefPath -ErrorAction SilentlyContinue
if ($CheckDefPath) {
"VM configuration file is: $VMConfDefPath"
} else {
"VM configuration file for $VMName not found."
}

Hans Brender: Ich bin zurück

Ich bin zurück, Teil 5 meiner Episode, BitTitan

der fünfte Artikel in dieser Reihe beschreibt meinen Wandel vom Techie zum Marketing Menschen bei BitTitan.

Wer ein bisschen Zeit hat, der sollte Teil 1-4 erst einmal lesen

Teil 1: Mein erster Arbeitstag
Teil 2: Meine erste Arbeitswoche
Teil 3: nach drei Wochen
Teil 4: Nach neun Monaten

Teil 5 mit dem Titel “Ich bin zurück”  ist nach 444 Tagen hier in deutscher Sprache bei BitTitan erschienen.

Viel Spaß beim Lesen


Hans Brender: SharePoint Online | Mehrere Dateien herunterladen

Markieren, Herunterlagen, gezippte Datei speichern

Manchmal ist es einfach. Da kann der große Bruder vom kleinen Bruder lernen. Und das hat OneDrive for Business von OneDrive (der persönlichen Variante) gelernt. Dort gibt es die Funktionalität schon lange. Es geht um das automatische “Zippen” von mehreren Dateien bei einem Download:

1 Zuerst werden in einer Dokumentenbibliothek mehrere Dateien markiert.
2 Dann wird auf Herunterladen geklickt
3 Alle markierten Dateien werden in eine OneDrive_XXXX.X.XX.zip Datei gepackt und zum Herunterladen angeboten und je nach Browser und Einstellung automatisch gespeichert.

Diese Funktionalität wird derzeit auf allen Tenants ausgerollt. Danke Microsoft, warum nicht gleich so.


SharePointPodcast: SPPD361 – Microsoft VP Julia White startet Office 365 aus der Cloud Deutschland


Office 365 gibt es ab sofort auch aus der Microsoft Cloud Deutschland – sicher vor dem Zugriff ausländischer Mächte durch das Daten-Treuhänder-Modell mit der T-Systems als Partner. Ich war auf dem Launch-Event hier bei Microsoft in Berlin auf dem Microsoft Corporate Vice President Julia White den „offiziellen Startschuss“ für das Angebot gab.

This Day in History

Tipps

Talk

Tricks

 

Flattr this!

faq-o-matic: Blog-Statistik 2016

Hier ist unsere Statistik über die Zugriffe auf unser Blog im Gesamtjahr 2016. Wie immer gilt: Die Methoden, mit denen wir die Statistiken erheben, erfüllen keine wissenschaftlichen Ansprüche, geben aber aufschlussreiche Tendenzen wieder. Und auch weiterhin halten wir uns daran: Wir werten die Zugriffe komplett anonym aus und verwerten keine IP-Adressen oder andere persönliche Daten. Auch die Logdateien unseres Webservers anonymisieren wir umgehend, nachdem die Daten automatisiert protokolliert wurden (und vor der Auswertung).

Im vergangenen Jahr war der Zuwachs bei den Besucherzahlen weniger ausgeprägt als in manchen anderen Jahren. In den meisten Monaten 2016 lagen die Zahlen der “Unique Visitors” teils deutlich über 9.000 (jeweils gültig an den Werktagen).

Die Zugriffszahlen

Traditionell werten wir zwei Werte monatlich aus. Jeweils handelt es sich um so genannte “Unique Visitors”, also solche Zugriffe, die mit hoher Wahrscheinlichkeit einen zusammenhängenden “Besuch” unseres Blogs bedeuten (dieselbe IP-Adresse taucht zeitlich zusammenhängend für mehrere Seitenabrufe auf). Dabei interessieren uns die täglichen Durchschnittswerte und die monatliche Gesamtzahl. Auch weiterhin lässt sich gut an den täglichen Statistiken ablesen, dass faq-o-matic.net weit überwiegend beruflich genutzt wird: Die allermeisten Abrufe geschehen zu den deutschen Bürozeiten, also montags bis freitags zwischen etwa 8:00 Uhr und 18:00 Uhr.

Die Werte an Wochentagen bewegten sich fast im gesamten Jahr um die 9.000 Besucher. An Wochenenden kommen zwischen 5.000 und 6.000 Interessierte zu uns. Auf den Monat gerechnet lagen die Besucherzahlen zwischen etwa 215.000 und fast 230.000.

image

Die Unique Visitors in den einzelnen Monaten 2016

Die Allzeit-Kurve zeigt wie immer ein stetiges Auf und Ab, wobei die Gesamtwerte seit einiger Zeit recht stabil sind. Wie immer sind die Zahlen vor 2008 aus einzelnen Angaben zurückgerechnet. Die blaue Kurve zeigt die Summe der Besuche pro Monat, die rote den Durchschnittswert pro Tag.

image

Die Unique Visitors seit Gründung des Blogs

Unsere Beiträge

Im vergangenen Jahr erschienen nicht ganz so viele neue Beiträge wie in manchen anderen Jahren. Trotzdem ist es uns gelungen, mehr als unser angestrebtes “Minimum” von zwei neuen Blogposts pro Woche beizubehalten.

Monat Artikelzahl
1 7
2 8
3 8
4 9
5 9
6 10
7 4
8 13
9 9
10 11
11 9
12 6
Summe 103
Die beliebtesten Artikel

Hier nun wieder die beiden Listen der beliebtesten Artikel. Zunächst die Texte, die im Jahr 2016 neu erschienen sind, in der Reihenfolge der Zugriffszahlen (bester Wert zuerst). Die obersten zehn geben wir direkt an, für die weiteren Plätze bitte klicken.

Platz Artikel und Autor
1 Hyper-V: RAM und vCPU der VMs per PowerShell prüfen (Nils Kaczenski)
2 Das Problem des widerspenstigen Ordners (Thomas Steinberger)
3 Artikelserie: Performance von Gruppenrichtlinien (Helge Klein)
4 RSAT für Windows 10 Version 1607 (Nils Kaczenski)
5 Windows 10 Version 1607: Vorsicht mit Bitlocker! (Nils Kaczenski)
6 Windows 10 v1607: GPO-Einstellungen nur für Enterprise Edition (Nils Kaczenski)
7 VBScript: SystemScripter jetzt kostenlos! (Nils Kaczenski)
8 Neuer Bundestrojaner kommt als Windows-Update (Nils Kaczenski)
9 CDC Germany 2016: Die Videos sind online (Nils Kaczenski)
10 Hyper-V Replica schlägt mit 0x00002EFD fehl (Nils Kaczenski)

Plätze 11 bis 50: Hier klicken

Die 2016 erschienenen Artikel in der Rangfolge ihrer Aufrufe

Beliebteste Artikel aus dem Gesamtbestand

Die zweite Liste zeigt, welche Artikel aus unserem gesamten Bestand seit 2005 im vergangenen Jahr am häufigsten aufgerufen wurden.

Platz Artikel und Autor
1 LDAP-Grundlagen für Active Directory (Nils Kaczenski)
2 Windows-Gruppen richtig nutzen (Nils Kaczenski)
3 Active Directory: LDAP-Feldnamen (Nils Kaczenski)
4 Rufumleitung auf Windows Phone Nokia Lumia 930 einstellen (Timo-Manuel Junge)
5 ADFS: Grundlagen und Architektur (Nils Kaczenski)
6 Benutzerprofile mit EasyTransfer migrieren (Nils Kaczenski)
7 Was man über Remote-Desktop-Verbindungen wissen sollte (Carola Helfert)
8 Benutzerprofile an neue Benutzer übertragen (Nils Kaczenski)
9 Drucken unter Windows 7 in der Domäne (Nils Kaczenski)
10 Outlook 2007: Indizierung neu aufbauen (Nils Kaczenski)

Plätze 11 bis 50: Hier klicken

Die Artikel aus dem Gesamtbestand in der Rangfolge ihrer Aufrufe im Jahr 2016

Externe Suchausdrücke

Die folgende Hitliste gibt wieder, mit welchen Suchausdrücken unsere Besucher im vergangenen Jahr am häufigsten zu uns gefunden haben. Es handelt sich um Web-Recherchen bei Google und Bing, die zu einem Artikelaufruf bei uns führten. (Andere Suchmaschinen spielen bei uns auch weiterhin praktisch keine Rolle.)

  1. rufumleitung windows phone
  2. ADFS
  3. anrufweiterleitung windows phone
  4. anrufumleitung windows phone
  5. lumia rufumleitung einstellen
  6. rufumleitung lumia
  7. rufumleitung nokia lumia 930
  8. rufumleitung lumia 930
  9. never change a running system
  10. rufweiterleitung windows phone
  11. rufumleitung nokia lumia
  12. windows phone rufumleitung
  13. Rufumleitung Windows Phone Lumia 930
  14. Windows Phone als Fernbedienung
  15. Hyper-V
  16. Windows Phone 10 Rufumleitung
  17. Rufumleitung Windows 10 Mobile
  18. laps
  19. anrufweiterleitung lumia 930

Suchausdrücke, mit denen Besucher uns bei Suchmaschinen (Google, Bing usw.) gefunden haben, in der Rangfolge der Häufigkeit

Referer-Domains

Die Browser geben beim Besuch einer Seite an, welche Seite sie vorher angezeigt haben. Daraus können wir Rückschlüsse ziehen, wer auf uns verlinkt und in welchen Communities unsere Artikel als verlässliche Quelle gelten.

Hier die Referer-Domains:

  1. www.google.de
  2. www.google.at
  3. www.mcseboard.de
  4. www.bing.com
  5. itproblogs.de
  6. www.google.ch
  7. stephan-mey.de
  8. www.google.co.uk
  9. images.google.de
  10. www.google.com
  11. feedly.com
  12. duckduckgo.com
  13. startpage.com
  14. s3.feedly.com
  15. translate.googleusercontent.com
  16. www.gruppenrichtlinien.de
  17. webcache.googleusercontent.com
  18. www.borncity.com
  19. www.computerbase.de

Referer-Domains, von denen aus Besucher zu uns gelangt sind

Browser und Betriebssysteme

Hier die Rangfolge der Browser und Betriebssysteme, die unsere Besucher verwenden, um bei uns zu lesen. Die Werte unterscheiden sich teils deutlich von denen anderer Webseiten – ein klarer Hinweis darauf, dass wir als Nischen-Blog ein spezielles Publikum haben. Die einzelnen Versionen des Internet Explorer und des Firefox schlüsseln wir nicht mehr auf.

Auffälligkeiten hierbei im Jahr 2016:

  • Die Verteilung der drei “großen” Browser verschiebt sich nun deutlicher. Firefox und der IE haben dabei recht deutlich nachgelassen. Chrome ist nun erheblich sichtbarer, aber immer noch seltener vertreten als auf vielen anderen Sites.
  • MS Edge ist weiterhin wenig beliebt. Auffällig ist aber, dass der Anteil von Windows 10 viel höher ist als der des Edge – Windows-10-Nutzer kommen also lieber mit  anderen Browsern.
  • Nach wie vor ist Windows 7 als Betriebssystem bei unseren Besuchern am beliebtesten, der Wert ist gegenüber 2015 erneut recht deutlich gesunken. Windows 8.1 verabschiedet sich langsam, dafür hat Windows 10 seinen Anteil verdreifacht.
  • Immer noch waren einige unserer Besucher mit Windows XP unterwegs. Der Wert stagniert auf (zu) hohem Niveau.
  • Spannend: Linux ist häufiger vertreten als früher.
  • Auch weiterhin spielen Smartphones und Tablets bei uns kaum eine Rolle. Windows Phone wird wohl bald verschwunden sein.

System

Anteil
MSIE gesamt 20,5 %
Edge 2,8 %
Firefox gesamt 35,2 %
Chrome 23,2 %
Opera 0,4 %
Windows XP 2,1 %
Windows Vista 0,7 %
Windows 7 36,4 %
Windows 8 1,2 %
Windows 8.1 8,2 %
Windows 10 25,4 %
Mac OS X 2,9 %
Linux (diverse) 5,1 %
Windows Phone 0,4 %
iPad 0,8 %
iPhone 1,3 %
Android 2,2 %

Browser und Betriebssysteme und ihre Anteile an den Seitenaufrufen 2016

Carsten Rachfahl [Hyper-V]: Webinar Azure Stack Überblick

Am 13. Februar findet unsere Webinar "Azure Stack Überblick" statt. Seit Microsoft auf der Ignite Konferenz im Mai 2015 die Katze aus dem Sack gelassen hat geistert diese neue "Eier legende Wollmilchsau" durch aller Munde. Was wird Azure Stack sein? Was wird es können? Und vorallendingen was wird es nicht sein? Alles Fragen die auch mich seit 2015 beschäftigen. Ich werde in diesem Webinar versuchen einige dieser Fragen zu bantworten.

Also wenn Ihr dabei sein wollt dann geht's hier zur  Anmelden.

Der Beitrag Webinar Azure Stack Überblick erschien zuerst auf Hyper-V Server Blog.

faq-o-matic: PowerShell: Was ist eigentlich die ExecutionPolicy?

Wer nur gelegentlich mit der PowerShell arbeitet, stolpert oft über die ExecutionPolicy, die das Ausführen von Skripten (zunächst) verhindert. Was dahintersteckt, wissen aber auch PowerShell-Power-User (hihi) oft nicht genau.

Der PowerShell-Guru Tobias Weltner hat dies gut dargestellt und gibt auch einige Empfehlungen:

[Understanding Execution Policy]
http://www.powertheshell.com/understanding-execution-policy/

Carsten Rachfahl [Hyper-V]: Die Cloud & Datacenter Conference 2017 nimmt so langsam Gestalt an

CDC-Germany 2017 Bild von München

Das neue Jahr ist angebrochen und auch die Cloud & Datacenter Conference Germany 2017 nimmt jetzt so langsam gestallt an. Im folgende habe ich euch einige Highlights zusammengestellt.

​Sprecher

Wir haben jetzt bereits 25 Top Sprecher für die Konferenz gewinnen können. Unter ihnen sind:

  • 20 Microsoft Most Valuable Profesionals
  • 5 Microsoft Regional Directors (sind alle auch MVPs)
  • 5 Microsoft technische Sprecher

Aber bitte schaut selbst wer schon alles dabei ist.

Themen

Da wir dieses Jahr einige Sprecher Slots mehr zu füllen haben (32 gegenüber 25 von letztem Jahr) habe wir entschieden auch die Microsoft Office Server Produkte mit in die Themen aufzunehmen. Ihr findet deswegen auch die Themen Exchange 2016, SharePoint 2016, Skype for Business und Office 365 auf der Themenliste. Die Momentane List findet ihr in der Grafik.

Vorläufiger Themen Überblick

Early-Bird Karten

Bis einschließlich zum 15. Februar könnt Ihr euch noch den Early-Bird Preis mit € 70 Rabatt auf den normalen Konferenz Preis sicher! Ab dem 16. Februar kosten die Konferenz dann den vollen Preis. Außerdem habe wir in den Räumlichkeiten auch ein Besucher Limit von maximal 400 Teilnehmer. Also wenn ihr sicher sein wollt, das Ihr dabei seit dann solltet Ihr so schnell wir möglich zuschlagen! Denn die Zeit tickt.

Zeit bis zum Ablauf des Early Bird Rabatt!

29
Days
07
Hours
21
Minutes
01
Seconds

​Hier geht's zur CDC-Germany Website.

In den nächsten Monaten werden wir auf dem Blog immer mal wieder über die Konferenz berichten.​


Der Beitrag Die Cloud & Datacenter Conference 2017 nimmt so langsam Gestalt an erschien zuerst auf Hyper-V Server Blog.

Bent Schrader: DHCP Failover Cluster: Automatische Replikation von Konfigurationsänderungen

Mit dem Windows Server 2012 (R2) unterstützt Microsoft nun die hochverfügbare Konfiguration des DHCP Dienstes. Das bedeutet, dass zwei Server gleichzeitig die Rolle des DHCP Servers besitzen und über ein und dieselbe Konfiguration verfügen. In aktuellen, oftmals virtualisierten IT-Umgebungen können so hochverfügbare DHCP-Konfigurationen umgesetzt werden, bei denen ein DHCP-Server virtualisiert und ein zweiter auf einem physischen System betrieben wird.

Ein sogenannter DHCP Failover Cluster unterstützt zwei Modi: Load Balancing und Hot-Standby. Gleich welcher Modus verwendet wird, die DHCP-Datenbank für die ausgestellten Leases wird immer synchron gehalten, um im Fehlerfall eines (oder des aktiven) Servers, ohne Unterbrechung durch den Partnerserver weiterhin zur Verfügung zu stehen.

Problem

Obwohl bei der Einrichtung eines DHCP Failover Clusters die gesamte Konfiguration des ersten DHCP-Servers durch den Assistenten auf den Partnerserver übertragen wird, so gilt das im Betrieb nicht für Änderungen an der Konfiguration. Wird beispielsweise eine Reservierung innherhalb eines Failover-replizierten Bereiches hinzugefügt, geändert oder gelöscht, so wird diese Änderung nicht automatisch auf den Partnerserver repliziert. Diese Aktion muss manuell im Kontextmenü in der DHCP-Konsole erfolgen:

Manuelle Replikation der DHCP-Konfiguration

Alternativ kann diese Replikation auch über den folgenden PowerShell erfolgen, im diesem Beispiel würde die gesamte Konfiguration (also alle Failover-replizierten Bereiche) auf den Partnerserver übertragen werden:

Invoke-DhcpServerv4FailoverReplication -Force

Leider ist dieses Verhalten kein Fehler, sondern per Design so. Es lässt sich aber durchaus automatisieren, wie auch die Lösung von teamdhcp im Microsoft Technet. Allerdings war mir die Lösung zu kompliziert und erfordert die Ausführung eines PowerShell-Skriptes mit zusätzlicher XML-Konfigurationsdatei. Außerdem erfolgt die Synchronisation zeitgesteuert zyklisch.

Lösung

Mit der folgenden Anpassung lässt sich die DHCP-Konfiguration ereignisgesteuert replizieren. Dazu sind einige, im Folgenden beschriebene, Schritte notwendig, ohne das ein gesondertes PowerShell-Skript ausgeführt werden muss. Das folgende Schaubild skizziert die Funktionsweise der hier vorgestellten Lösung:

Funktionsweise der Replikation

Erklärung der im Bild dargestellten Prozesse:

  1. Aktion 1: DHCP-Konfigurationsänderung am DHCP-Server 1
  2. Aktion 2: Eintrag im Ereignisprotokoll des DHCP-Server 1
  3. Aktion 3: Auslösung der Aufgabe zur Konfigurationsreplikation
  4. Aktion 4: Replikation der Konfiguration auf Basis von Powershell als spezieller Replikationsbenutzer

Natürlich soll die Replikation (im Load-Balancing-Modus) auch bidirektional funktionieren. Damit nach der Aktion 4, welcher der Aktion 1 auf dem DHCP-Server 2 entspricht, keine Endlos-Replikationsschleife ausgelöst wird, reagiert der Trigger der Aufgabe bei Aktion 3 nur, wenn das Ereignis nicht durch den Replikationsbenutzer erzeugt wurde.

Voraussetzung

Eine bereits eingerichtete DHCP-Failover-Konfiguration ist für die anschließenden Tests der hier beschriebenen Anpassung sinnvoll. Dabei ist zu beachten, dass immer alle Failover-konfigurierten Bereiche (Scopes) in der Replikation enthalten sind.

Schritt 1: Neues Dienstkonto erstellen

Das Dienstkonto (Domänenmitglied) wird zur Ausführung der Replikation benötigt und muss Mitglied der Gruppe DHCP-Administratoren auf den DHCP-Servern sein. Wird der DHCP-Server auf Domänencontrollern ausgeführt, ist diese Gruppe eine Domänen-lokale Sicherheitsgruppe. Als Mitglied dieser Gruppe darf der Benutzer Änderungen (und auch Replikationen) an den DHCP-Servern vornehmen:

DHCP-Dienstkonto

Außerdem muss das Dienstkonto auf den DHCP-Servern das Recht Anmelden als Stapelverarbeitungsauftrag erhalten. Dies kann über eine Gruppenrichtlinie (oder bei einem Mitgliedsserver über die lokale Sicherheitsrichtlinie) erreicht werden:

Recht: Anmeldung als Stapelverarbeitungsauftrag

Dieses Benutzerrecht wird benötigt, um später eine Aufgabe in der Aufgabenplanung auf den betroffenen Systemen auszuführen.

Schritt 2: Neue Aufgabe erstellen

Auf dem ersten DHCP-Server wird in der Aufgabenplanung eine neue Aufgabe erstellt. Im Reiter Trigger wird im Anschluss ein neuer Trigger erstellt. Unter Aufgabe starten muss Bei einem Ereignis und danach unter den Einstellungen Benutzerdefiniert ausgewählt werden.

Neue Aufgabe und Trigger erstellen

Im Anschluss kann ein neuer Ereignisfilter erstellt werden. Als Protokoll ist das Microsoft-Windows-DHCP Server Events/Betriebsbereit auszuwählen, da bei einem hier auftretenden Ereignis der Trigger und damit die Aufgabe ausgeführt werden soll. Allerdings soll verhindert werden, dass der Trigger für ein Ereignis welches remote durch den in Schritt 1 definierten Benutzer erzeugt wurde, ausgelöst wurde. Dazu muss dieser Benutzer im Feld Benutzer eingetragen werden:

Danach ist der Reiter XML auszuwählen und im unteren Fensterbereich Manuell bearbeiten zu aktivieren. Dadurch wird das XML-Feld editierbar. Hier muss nach der Zeichenkette @UserID und vor dem = ein ! eingefügt werden. Damit gilt der neue Ereignisfilter für alle Eregnisse im ausgewählten Protokoll – außer diejenigen, die vom Benutzer aus Schritt 1 erzeugt worden.

XML-Konfiguration des Ereignisfilters

Nun können die offenen Fenster des Ereignisfilters mit OK bestätigt werden. Im Aufgabendialog kann nun der Reiter Aktionen gewählt werden und mit der Schaltfläche Neu eine neue Aktion erstellt werden. Dazu wird der oben aufgeführte PowerShell-Befehl verwendet:

Neue Aufgabenaktion

Dabei ist als Programm/Skript powershell zu verwenden und als Argument die Zeile

-command „Invoke-DhcpServerv4FailoverReplication -Force“

hinzuzufügen. Danach kann der Dialog mit OK bestätigt werden und der Aufgabenreiter Allgemein ausgewählt werden. Hier ist ein Name für die Aufgabe einzugeben und der Benutzer aus Schritt 1 für die Ausführung auszuwählen. Zudem soll die Aufgabe unabhängig von der Benutzeranmeldung und mit höchsten Privilegien ausgeführt werden:

Allgemeine Aufgabeneinstellungen

Im Anschluss kann im Reiter Einstellungen die letzten Anpassungen vorgenommen werden. Wird die Aufgabe bereits ausgeführt, soll eine neue Instanz in die Warteschlange gestellt werden. Bei einer Ausführung von mehr als einer Minute ist die Aufgabe zu beenden – diese dauert erfahrungsgemäß wenige Sekunden.

Einstellungen der Aufgabe

Mit diesen Einstellungen kann die Aufgabe mit OK erstellt werden. Das Kennwort für den Benutzer wird abgefragt und der Hinweis für das notwendige Recht zur Anmeldung als Stapelverarbeitungsauftrag erscheint.

Zu diesem Zeitpunkt existiert bereits die unidirektionale Replikation vom aktuellen DHCP-Server (auf dem die Aufgabe erzeugt wurde) zum Partnerserver.

Schritt 3: Einrichtung der bidirektionalen Funktionalität

Auf dem zweiten DHCP-Server (Partnerserver) sind nun der Schritte 1 und 2 analog zum ersten Server durchzuführen. Dabei muss das Servicekonto (bei Mitgliedschaft in der Domäne) nicht neu angelegt werden

Schritt 4: Testen der Funktionalität

In meiner Testumgebung habe ich auf dem DHCP-Server 1 (hier lab-dc1.test.lab) auf dem die Aufgabe erstellt wurde, eine vorhandene Reservierung in einem Failover-konfigurierten (und synchronen) Bereich gelöscht. Diese Aktion wurde als Administrator durchgeführt. Im Ereignisprotokoll findet man dazu folgenden Eintrag:

Löschen einer Reservierung auf DHCP-Server 1

Nach der Ausführung dauerte es (in meiner virtuellen Umgebung) einige Sekunden und im Ereignisprotokoll des DHCP-Server 2 (hier lab-dc2.test.lab) wurden folgende drei Ereignisse des Benutzers DHCP-Replication angezeigt:

Replikation auf dem DHCP-Server 2

Auf Grund der Tatsache das der Ereignisfilter aber den Benutzer DHCP-Replication explizit ausschließt, findet keine Rückreplikation statt – also so wie gewollt. Der Blick in die DHCP-Konsole bestätigte: die Reservierung wurde auf beiden DHCP-Servern erfolgreich gelöscht.

Auch weitere Tests bestätigen – die beschriebene Lösung funktioniert wie erwartet und hilft, die vermisste automatische Replikation der Konfigurationsänderungen in DHCP-Failover-Clustern zu verwenden.

Fazit

Warum Microsoft die automatische Replikation im DHCP-Failover-Cluster nur auf ausgestellte Leases beschränkt, ist für mich schwer nachvollziehbar. Gibt es in größeren Netzwerken (in denen ein hochverfügbarer Cluster-Betrieb erst sinnvoll erscheint) genügend Aufgaben, die eine Konfigurationsänderung im DHCP-Server nach sich ziehen. Die hier beschriebene Lösung ist recht praiktikabel und ohne größeren Aufwand umsetzbar. Wer Ergänzungen oder Verbesserungsvorschläge hat, kann diese gern hier als Kommentar posten.

Wie bei allen meinen Beiträgen gilt: Bei Tipps, Vorschlägen sowie Fragen oder Kritiken hinterlasst bitte einen Kommentar.

Scolab: Vom Witz zur Realität – Sharepocalypse 40

Amazon’s Alexa, der Feind ist in deinem Haus. Berlin nach dem Anschlag – 24 Stunden im StahlgeTwitter. N26 – Wem es bei „Bank-Startup“ nicht klingt, ist nicht reif für das wirkliche Leben. CES-Awards – Intelligenz des Menschen ‚in a nutshell’. … Weiterlesen

Der Beitrag Vom Witz zur Realität – Sharepocalypse 40 erschien zuerst auf Scolab.

Carsten Rachfahl [Hyper-V]: Microsoft Virtualisierung Podcast Folge 54 – OpenStack mit Hyper-V

​In diesem Podcast habe ich im Schwerpunktthema Hyper-V MVP Alessandro Pilotti zu Gast. Allesandro ist in der OpenSource Community sehr aktiv und im hat es OpenStack angetan. Deswegen unterhalten wir uns auch über OpenStack mit Microsoft Technologien, speziel Hyper-V.
Am Ende habe ich für euch (wie immer) noch die Termine rund um die Private/Hybrid Cloud zusammengefasst.

Wenn Ihr lieber schaut als hört, dann findet ihr das Video zum Podcast hier:

Ich wünsch Euch wie immer viel Spaß beim zuhören/zusehen.​

​Interview mit Allesandro Pilotti über "OpenStack und Hyper-V" (ab 1:27)

Wenn man im Internet nach OpenStack und Hyper-V sucht trifft man immer wieder auf einen Namen CloudBase Solutions. Im interview habe ich deren CEO Alessandro Pilotti (ebenfalls Cloud & Datacenter Management MVP). Also habe ich Alessandro gefragt ob er zeit hat und hier ist das Ergebnis meines Interviews.

Der Beitrag Microsoft Virtualisierung Podcast Folge 54 – OpenStack mit Hyper-V erschien zuerst auf Hyper-V Server Blog.

Carsten Rachfahl [Hyper-V]: Desired State Configuration (DSC) und Windows Server 2016 – Teil 2: VMs im Hyper-V, Partielle Konfigurationen und ein Web Pull Server

Im Teil 1 meiner Artikelserie habe ich ein paar grundlegende Ideen und Vorgehensweisen der Desired State Configuration (DSC) beschrieben. Heute möchte ich ein Szenario vorstellen, wie man in einer Lab-Umgebung mit DSC virtuelle Maschinen (VMs) im Hyper-V erzeugen und konfigurieren kann.

Die Lab Systemumgebung

Als physische Basis und Entwicklungsumgebung meiner virtuellen Lab Umgebung verwende ich eine Workstation, auf der ein deutsches Windows 10 Pro in der aktuellen Version 1607 läuft und das immer mit allen Patches aktuell gehalten wird. Alternativ kann natürlich auch Windows 10 Enterprise oder Windows Server 2016 verwendet werden. Windows 10 Home Edition scheidet aus, da für unser Projekt die Hyper-V Komponente benötigt wird, die ja in den Home Editionen nicht enthalten ist.

Die Physik

  • i7 Prozessor
  • 32 GB RAM
  • Windows 10 Boot aus VHDX (= Laufwerk C:) mit aktiver Hyper-V Komponente
  • Festplatte D: enthält Projektverzeichnis D:/DSC-Lab. In diesem Verzeichnis werden wir die DSC Konfigurationsskripte ablegen und ggf. in separaten Unterverzeichnissen zusätzliche Daten für die jeweiligen VMs.
  • SSD-Laufwerk E: enthält Verzeichnis E:/Hyper-V, in dem die erzeugten VMs landen. Für jede VM wird darunter ein eigenes Verzeichnis mit dem Namen der VM angelegt, das dann alle Daten der VM enthält (Hyper-V Definitionen und virtuelle Laufwerke).

Skripte zum Downloaden

In diesem Artikel finden Sie viele Code Schnipsel aus Powershell Skripten. Wenn Sie die gezeigten Beispiele auf Ihrem eigenen Rechner nachvollziehen wollen, empfehle ich Ihnen, die Skript-Sammlung auf Ihr System herunterzuladen und in das Verzeichnis D:/DSC-Lab zu extrahieren.

Anmerkung: Die .ZIP-Datei enthält auch bereits die Skripte vom Teil 3 mit einem Pull Client.

Die Hyper-V Umgebung

Im Hyper-V habe ich bereits einen Switch für ein internes virtuelles Netzwerk mit dem Namen NatSwitch80 angelegt. Dieses virtuelle Netzwerk werden wir als Management Netz für unsere VMs verwenden. Damit die mit diesem Netz verbundenen VMs auch Zugriff haben ins Internet, ist für dieses Netz zusätzlich ein NAT-Objekt im Hyper-V Host angelegt. Der IP-Bereich des Netzes ist 192.168.80.0/24, wobei über das NAT-Objekt die Adresse 192.168.80.1 als Gateway in die weite Welt definiert ist. Details über die NAT-Funktionalität von internen Hyper-V Netzwerken finden Sie in einem früheren Blogpost von mir. Hier nur nochmals kurz das Powershell Skript zum Anlegen dieses NAT-Switch – Achtung: Mit Administratorrechten ausführen!:

Betriebssystem Images für die VMs

Wir werden unsere virtuellen Maschinen aus einem “jungfräulichen” Betriebssystem Image erzeugen, das wir aus der heruntergeladenen ISO-Datei des Windows Server 2016 in einer .VHDX-Datei generieren. Dabei müssen wir unterscheiden zwischen Images, die alle zu einer bestimmten Server Edition gehörigen Komponenten vollständig enthalten, und Images für den Nano Server. Zunächst wollen wir uns nur mit vollständigen Images befassen. Auf das Thema Images mit dem Nano Server werde ich in einem späteren Artikel eingehen, wenn wir uns mit Szenarien auf Basis von Nano Server beschäftigen werden.

Zum Erstellen einer solchen Image-Datei aus der heruntergeladenen ISO-Datei verwenden wir das Powerhell Skript Convert-WindowsImage.ps1. Es existiert bereits seit Einführung von virtuellen Festplattendateien (Dateien des Typs .VHD bzw. . VHDX) – also seit Windows Vista bzw. Windows Server 2008 – in der Powershell Gallery. Das Skript wurde laufend weiterentwickelt und an die jeweiligen neuen Windows Versionen angepasst. Auf dem Windows Server 2016 Installationsmedium wird dieses Skript nun direkt in der aktuellsten Version bereitgestellt. Es befindet sich im Verzeichnis NanoServer/NanoServerImageGenerator

Startet man zum ersten Mal eine VM aus einem mit Convert-WindowsImage.ps1 erzeugten Image, so wird zunächst der normale Windows Setup ausgeführt. Dabei wird man ein paar Dinge beobachten, die einen automatischen unbeaufsichtigten Start verhindern:

  • Es werden die Lizenzbedingungen angezeigt, die man interaktiv bestätigen muss.
  • Man muss Sprach- und Tastatureinstellungen interaktiv festlegen bzw. zumindest bestätigen.
  • Man muss das initiale Passwort für den lokalen Administrator festlegen.

Abhilfe kann man schaffen, indem man vor dem Erzeugen des Images eine Antwortdatei mit dem Namen Unattend.xml erstellt und diese in das Image einfügt. Das Skript Convert-WindowsImage.ps1 bietet einen Parameter, bei dem man den Pfadnamen der Antwortdatei angeben kann, die in das Image kopiert werden soll.

Eine Antwortdatei für den Windows Setup ermöglicht es zwar, fast alle Einstellungen eines Systems zu konfigurieren. Unser Ziel hier ist es aber, Konfigurationen mit Desired State Configuration (DSC) durchzuführen. Deshalb beschränken wir uns auf eine minimale Antwortdatei, mit der die beschriebenen Setup Stopper automatisch übersprungen werden. Kopieren Sie das folgende XML-Skript in eine Powershell ISE Sitzung, legen Sie ein geeignetes Passwort für den lokalen Administrator fest (Zeile 41) und speichern Sie dann die Datei auf Ihren Entwicklungsrechner (z.B. nach D:/DSC-Lab/Unattend.xml).

Anmerkung: Neben den beschriebenen Setup-Stoppern habe ich in dieser XML-Datei noch ein paar zusätzliche Einstellungen definiert, die einem das Leben in einer Test- und Entwicklungsumgebung erleichtern, wie z.B. Aktivieren der Remote Desktop Funktion einschließlich der passenden Firewall-Regeln sowie das Ausschalten der IE-Härtung. Für eine produktive Umgebung sollten Sie sich genau überlegen, ob Sie diese sicherheitsrelevanten Einstellungen übernehmen wollen.

Um mit Convert-WindowsImage.ps1 ein vollständiges Image mit dem Windows Server 2016 einschließlich der vorstehenden Datei Unattend.xml zu erzeugen, gehen Sie folgendermaßen vor:

  1. Öffnen Sie die ISO-Datei von Windows Server 2016 durch einen Doppelklick im Windows Explorer. Der Inhalt erscheint in einem neuen virtuellen CD/DVD-Laufwerk.
  2. Kopieren Sie den gesamten Inhalt der CD in ein Verzeichnis Ihrer Festplatte, z.B. D:/DSC-Lab/ WS2016
  3. Starten Sie jetzt eine Powershell Konsolen- oder ISE-Sitzung mit Administratorrechten und wechseln Sie in das Verzeichnis NanoServer/NanoServerImageGenerator der Kopie des CD-Inhalts (also z.B. D:/DSC-Lab/WS2016/NanoServer/NanoServerImageGenerator). Dort finden Sie die aktuelle Version des Powershell Skripts Convert-WindowsImage.ps1, mit dessen Hilfe Sie aus einer ISO- bzw. der darin enthaltenen .WIM-Datei ein Betriebssystem Image für VMs im Hyper-V erzeugen können. Die benötigte .WIM-Datei befindet sich im Verzeichnis Sources der CD-Kopie und hat den Namen Install.wim, für unser Beispiel also D:/DSC-Lab/WS2016/Sources/install.wim. Die Datei enthält sowohl die Standard als auch die Datacenter Editions von Windows Server 2016 jeweils mit und ohne Desktop Experience. Wir werden für unsere DSC-Experimente die Windows Server 2016 Datacenter Evaluation (Desktop Experience) verwenden, die in der .WIM-Datei den Index 4 trägt. Das Image werden wir als VHDX-Datei für Gen2 Hyper-V VMs erzeugen und direkt im Verzeichnis für die zu erzeugenden VMs – also E:/Hyper-V – unter dem Namen WS2016_GPT_DCGUI.vhdx ablegen.

Anmerkungen:

  1. Convert-WindowsImage.ps1 ist eigentlich kein “echtes” Powershell Skript, sondern enthält “nur” eine Powershell Funktion. Um diese nutzen zu können, müssen wir das Skript zunächst per Dot Sourcing in den globalen Workspace der Powershell laden und können dann erst die Funktion aufrufen.
  2. Falls Sie anstatt der Datacenter Edition von Windows Server 2016 eine andere Edition verwenden wollen, können Sie den entsprechenden Index mit dem DISM-Befehl ermitteln.

Mit den folgenden Powershell Befehlen erzeugen wir uns nun ein Basisimage für unsere weiteren Experimente, in das wir auch die zuvor erzeugte Datei Unattend.xml einfügen lassen:

Ergebnis: Die Image-Datei steht jetzt unter E:/Hyper-V/WS2016_GPT_DCGUI.vhdx zur Verfügung und wir können sie als Basisimage für VMs verwenden – sowohl als Parent Disk für differenzierende Laufwerke als auch als Quelle einer Kopie.

Einsammeln und Installieren benötigter DSC-Ressourcen

Für unsere DSC-Experimente zum Erzeugen von VMs im Hyper-V und deren Konfiguration benötigen wir eine Reihe von DSC-Ressourcen (Powershell Module), die nicht standardmäßig auf unserem Entwicklungs- und Testsystem vorhanden sind. Wir müssen sie vielmehr zuerst aus dem Internet von verschiedenen Quellen herunterladen und installieren. In der nachstehenden Tabelle habe ich die für diesem Beitrag verwendeten Module mit Versionsnummern und Hinweisen zum Download / Installieren zusammengefasst.

Modul

Version

Quelle

Autor

Installation

Anmerkungen

PSDesiredStateConfiguration


lokal unter C:/Windows/System32/WindowsPowerShell/v1.0/Modules/PSDesiredStateConfiguration

Microsoft

nicht notwendig, da standardmäßig in Windows enthalten

Enthält die grundlegenden DSC-Ressourcen und Cmdlets; sollte in jedes Konfigurationsskript importiert werden

Modul

Version

Quelle

Autor

Installation

Anmerkungen

xHyper-V

3.6.0.0

Powershell Gallery - https://www.powershellgallery.com/packages/xHyper-V/3.6.0.0

PowerShellTeam, Microsoft

Install-Module -Name xHyper-V -RequiredVersion 3.6.0.0 -Force -Verbose

Enthält Ressourcen zum Konfigurieren eines Hyper-V Hosts und zum Erzeugen von VMs

Modul

Version

Quelle

Autor

Installation

Anmerkungen

cHyper-V

3.0.0.0

Powershell Gallery - https://www.powershellgallery.com/packages/cHyper-V/3.0.0.0

PowerShellTeam, Microsoft

Install-Module -Name cHyper-V -RequiredVersion 3.0.0.0 -Force -Verbose

Enthält Ressourcen zum Erzeugen und Konfigurieren von Hyper-V- und VM-Netzwerkkomponenten

Modul

Version

Quelle

Autor

Installation

Anmerkungen

xComputerManagement

1.9.0.0

Powershell Gallery - https://www.powershellgallery.com/packages/xComputerManagement/1.9.0.0

PowerShellTeam, Microsoft

Install-Module -Name xComputerManagement -RequiredVersion 1.9.0.0 -Force -Verbose

Enthält Ressourcen zum Konfigurieren systemspezifischer Eigenschaften wie Computernamen und Domain bzw. Workgroup Mitgliedschaft

Modul

Version

Quelle

Autor

Installation

Anmerkungen

xNetworking

3.1.0.0

Powershell Gallery - https://www.powershellgallery.com/packages/xNetworking/3.1.0.0

PowerShellTeam, Microsoft

Install-Module -Name xNetworking -RequiredVersion 3.1.0.0 -Force -Verbose

Enthält Ressourcen zum Konfigurieren systemspezifischer IP-Eigenschaften wie IP-Adresse, DNS-Serveradresse, Gateway IP-Adresse , usw.

Modul

Version

Quelle

Autor

Installation

Anmerkungen

xPSDesiredStateConfiguration

5.1.0.0

Powershell Gallery - https://www.powershellgallery.com/packages/xPSDesiredStateConfiguration/5.1.0.0

PowerShellTeam, Microsoft

Install-Module -Name xPSDesiredStateConfiguration -RequiredVersion 5.1.0.0 -Force -Verbose

Enthält Ressourcen zum Konfigurieren verschiedener Systemdienste, u.a. zum Erzeugen und Konfigurieren eines DSC Pull Servers

Powershell Skript für den Download der Module:

Zurück zum Inhaltsverzeichnis ...

Ein DSC Konfigurationsskript zum Erzeugen von VMs im Hyper-V

Nachdem wir jetzt alle Voraussetzungen in unserer DSC Lab-Umgebung geschaffen haben, können wir uns daran machen, mit DSC eine VM im Hyper-V zu erzeugen. Laden Sie das nachstehende Konfigurationsskript DSCHyperV_VM0.ps1 aus dem Lab-Verzeichnis D:/DSC-Lab.in eine Powershell ISE Sitzung, die mit Administratorrechten gestartet wurde.

Schauen wir uns die einzelnen Abschnitte dieses Konfigurationsskripts etwas genauer an.

Parameterliste

Das Skript startet mit einer umfangreichen Parameterliste, über die fast alle Einstellungen zum Erzeugen einer VM im Hyper-V vorgegeben werden können, wobei ich für die meisten Parameter bereits Standardeinstellungen vorbelegt habe, die für unsere DSC-Experimente geeignet sind. Hierdurch vereinfacht sich der Aufruf der Konfiguration auf wenige Angaben wie Name der VM oder Pfadname der Datei mit dem Basisimage. Damit wird dann eine virtuelle Maschine auf unserem DSC Entwicklungsrechner (“localhost”) mit diesen Einstellungen erzeugt:

  • Anzahl Prozessoren: 2
  • Dynamischer RAM-Speicher: 512 MB – 16 GB; Start mit 2GB
  • Betriebssystem Disk: Differenzierend zur angegebenen Basisimage Datei
  • Netzwerkadaptername: MGMT (“Management”)
  • verbunden mit virtuellem Switch: NatSwitch80

Natürlich können Sie bei Bedarf die Vorbelegungen der verschiedenen Parameter beim Aufruf des Skripts durch Angabe eigener Werte überschreiben.

Importieren benötigter DSC-Ressourcen

Als erstes binden wir die in der Configuration verwendeten DSC-Ressourcen mit dem Befehl Import-DscResource ein.

Variablendefinitionen

An verschiedenen Stellen in den Ressourcen Blöcken des Skripts benötigen wir mehrfach die gleichen Pfadnamen. Deshalb definieren wir hier an zentraler Stelle Variable dafür, so dass eine spätere Wartung erleichtert wird.

Die Konfiguration im Detail

Innerhalb des Node Blocks werden jetzt die einzelnen Aktionen für das Erzeugen einer VM festgelegt.

Verzeichnisse für die VM erzeugen

Mit Hilfe der File Ressource stellen wir sicher, dass im Verzeichnis für die erzeugten VMs (in unserer Lab-Umgebung E:/Hyper-V) ein Unterverzeichnis für die neue VM existiert einschließlich eines darin enthaltenen Ordners für die virtuellen Laufwerke der VM. Wir erhalten dann also die nebenstehende Verzeichnisstruktur (der Name der VM ist hier DSC-TestVM).

Das Startlaufwerk für die VM erzeugen

Jetzt müssen wir im gerade erzeugten Verzeichnis das Startlaufwerk für die VM in Abhängigkeit des Parameters $OSDiskType erzeugen. Ist der Parameterwert ‘Copy’, können wir mit der DSC Standard-Ressource File eine Kopie des im Parameter $ParentVhdPath angegebenen Betriebssystem-Basisimage erstellen. Ist für $OSDiskType als Wert ‘Differencing’ angegeben, müssen wir auf eine Ressource xVHD aus dem Powershell Modul xHyper-V zurückgreifen. Damit können wir eine differenzierende .VHDX-Datei zum angegebenen Betriebssystem-Basisimage erzeugen. Vorteil: Die ist kleiner als eine Kopie und nimmt nur die Änderungen auf, die im Betrieb der VM entstehen.

Setup Dateien für die VM in das Startlaufwerk kopieren

Mit der im nächsten Ressourcenblock angegebenen Ressource xVHDFile (ebenfalls aus dem Modul xHyper-V) können wir – falls vorhanden – VM-spezifische Konfigurationsdaten in das soeben erstellte Startlaufwerk der VM kopieren. Die Ressource erzeugt intern für die bei VhdPath angegebene VHDX-Datei temporär ein Laufwerk und kopiert anschließend mit Hilfe der File Ressource den Inhalt des als SourcePath angegebenen Verzeichnisses in den DestinationPath, der relativ zur Root des temporären Laufwerks anzugeben ist. Wie solche Konfigurationsdaten strukturiert sein können, werden wir uns später noch anschauen, wenn wir unseren DSC Web Pull Server konfigurieren.

Die VM im Hyper-V erzeugen

Jetzt haben wir alle Informationen und Daten zusammengestellt, um mit Hilfe der xVMHyperV Ressource aus dem Modul xHyper-V eine neue VM anzulegen. Ich verwende bevorzugt Gen2 VMs, da sie flexibler zu handhaben sind, wenn man Änderungen an der ursprünglichen Konfiguration durchführen will (z.B. zusätzliche virtuelle Hardware im laufenden Betrieb hinzufügen).

Vielleicht fragen Sie sich, warum ich die Zeile EnableGuestService = $true auskommentiert habe. Wenn wir in einer nicht-englischen Hyper-V Umgebung diese Ressourcen-Eigenschaft setzen, führt das beim Ausführen der Konfiguration zu einem Abbruchfehler. Hintergrund ist ein Bug (!?) im Ressourcen-Modul. Dort wird der Service hart codiert mit seiner US-englischen Bezeichnung Guest Service Interface angesprochen. In einer deutschen Windows Umgebung hat der Service hingegen z.B. die Bezeichnung Gastdienstschnittstelle, mit der Folge, dass die Ressource den Service nicht findet und einen Fehler ausgibt.

Wenn Sie in einer US-englischen Umgebung arbeiten, können Sie problemlos den Kommentar wegnehmen.

Bei nicht-englischen Betriebssystemen können Sie später den Service über die GUI des Hyper-V Managers aktivieren.

Ich bin mit dem Autor der Ressource Daniel Scott-Raynsford über seine Issue Website bei Github in Kontakt. Eine Korrektur wäre relativ simpel, allerdings mit einer Modifikation des Codes im Ressourcen Modul verbunden, was hier jetzt den Rahmen unserer DSC-Experimente sprengen würde.

Dem Netzwerkadapter der VM einen vernünftigen Namen geben

Eine durchaus vernünftige, für unsere Zwecke aber etwas unschöne Eigenschaft des Hyper-V Powershell Kommandos New-VM – auf dem die DSC-Ressource xVHyperV basiert – ist die Tatsache, dass grundsätzlich ein Netzwerkadapter für die VM erzeugt wird. Der Name dieses Adapters ist leider abhängig von der Sprache der Windows Version. In einer deutschen Hyper-V Umgebung heißt er z.B. Netzwerkkarte, in englischen Versionen Network Adapter. Eine Änderung des Namens wäre über die GUI im Hyper-V Manager möglich und auch in der Powershell gibt es hierfür das Cmdlet Rename-VMNetworkAdapter. Leider habe ich aber keine DSC-Ressource gefunden, mit der dies machbar wäre - eine Herausforderung für Experten, eine entsprechende Ressource selbst zu schreiben. Um in meinen VMs den Namen des Netzwerkadapters in Mgmt umzuändern, werde ich ein bisschen tricksen:

Zunächst entferne ich mit Hilfe der DSC-Ressource cVMNetworkAdapter aus dem Modul cHyper-V die Netzwerkkarten mit den unerwünschten Namen durch die Angabe von Absent bei der Eigenschaft Ensure. Wenn es keine Netzwerkkarte mit dem entsprechenden Namen gibt, ist das kein Problem; die Ressource führt dann eben keine Aktion aus.

Jetzt können wir unserer VM ebenfalls mit cVMNetworkAdapter einen neuen Adapter mit dem gewünschten Namen Mgmt verpassen und diesen mit dem entsprechenden Switch NatSwitch80 verbinden. Und damit dieser Name später auch in der VM genutzt werden kann, setze ich mit Hilfe der Ressource cNetworkAdapterSettings die Eigenschaft DeviceNaming des Netzwerkadapters auf $true. Details zu dieser neuen Eigenschaft von Windows Server 2016 bzw. Windows 10 hat Jan Kappen bereits in einem früheren Blogpost beschrieben. Ich werde später beim Konfigurieren von VMs darauf zurückgreifen.

Ich geb’s ja zu, ein bisschen “von hinten durch die Brust ins Knie”; wenn jemand eine bessere Idee hat, lasst es mich wissen.

Eine erste Test-VM

Jetzt können wir einen ersten Test mit dem vorstehenden DSC-Konfigurationsskript durchführen und eine VM mit dem Namen DSC-TestVM erzeugen Öffnen Sie das Skript in einer Powershell ISE Sitzung, die mit Administratorrechten gestartet wurde und führen Sie folgende Schritte aus:

  1. Wechseln Sie in das DSC-Lab Verzeichnis
  2. Laden Sie das Konfigurationsskript per Dot Sourcing in den globalen Arbeitsbereich der Powershell ISE Sitzung
  3. . ./DSCHyperV_VM0.ps1

  4. Kompilieren Sie das Skript mit folgendem Befehl
  5. DSCHyperV_VM -VMname DSC-TestVM -ParentVhdPath `
    E:/Hyper-V/WS2016_GPT_DCGUI.vhdx -OutputPath ./DSC-TestVM -Verbose

  6. Starten Sie die Konfiguration der VM
  7. Start-DscConfiguration -wait -force -Verbose -Path ./DSC-TestVM

Im Konsolenfenster können wir den Ablauf mitverfolgen. Zum Abschluss sehen wir im Hyper-V Manager, wie eine neue VM erzeugt und gestartet wird.


Zurück zum Inhaltsverzeichnis ...

Bereitstellen VM-spezifischer Konfigurationsdaten am Beispiel eines DSC Web Pull Servers

Schön, jetzt haben wir also eine virtuelle Maschine im Hyper-V am Laufen. Diese beinhaltet aber keine speziellen Funktionen, da sie aus einem “neutralen” Betriebssystemimage erzeugt wurde. Wir müssen uns deshalb eine Vorgehensweise überlegen, wie man sie nach dem ersten Start für spezielle Funktionen konfigurieren kann – natürlich soweit möglich mit DSC. Dazu müssen die notwendigen DSC-Konfigurationsdaten wie Skripte und DSC-Ressourcen irgendwie in die VMs gebracht und dann der Local Configuration Manager (LCM) in der VM veranlasst werden, die Konfiguration abzuarbeiten. Als Beispiel für eine Möglichkeit, dies zu bewerkstelligen, soll die Konfiguration eines DSC Web Pull Servers dienen.

Was ist ein DSC Web Pull Server?

Im Teil 1 meiner DSC-Artikelserie habe ich bereits kurz die beiden Betriebsmodi Push und Pull für DSC beschrieben. Für den Pull Betrieb benötigen wir (mindestens) ein Server System, das die Konfigurationsdaten bereitstellt. Dabei gibt es 2 Varianten: Entweder über eine SMB-Freigabe oder über einen Web Service. Im letzteren Fall sprechen wir von einem DSC Web Pull Server. Auf das Arbeiten mit einem solchen Web Pull Server wil ich hier nicht näher eingehen. Dies wird in einem späteren Beitrag nachgeholt.

Bereitstellen der Konfigurationsdaten

Für meine DSC Lab-Umgebung habe ich folgende Vorgehensweise zum Bereitstellen von Konfigurationsdaten gewählt: Für jede VM wird ein eigenes Unterverzeichnis mit dem Namen der VM im Projektverzeichnis D:/DSC-Lab angelegt und dann in einem weiteren Unterordner eine Verzeichnisstruktur Setup erstellt. Diese enthält die DSC Konfigurationsdaten in exakt der gleichen Form wie sie in der Ziel-VM ausgehend von der Root des Startlaufwerks C: benötigt werden.

Für unseren Web Pull Server DSC-PS01 würde dies wie folgt aussehen:

  • ​Das Verzeichnis D:/DSC-Lab/DSC-PS01 enthält alle Daten für eine VM mit dem Namen DSC-PS01 (unseren DSC Web Pull Server).
  • Das Verzeichnis D:/DSC-Lab/DSC-PS01/Setup stellt die Root des Startlaufwerks C: der VM DSC-PS01 dar.
  • In das Unterverzeichnis D:/DSC-Lab/DSC-PS01/Setup/Program Files/WindowsPowerShell/Modules werden alle DSC Ressourcen Module kopiert, die für die DSC-Konfiguration der VM notwendig sind. Man kann sich diese aus dem Standardverzeichnis für DSC-Ressourcen auf unserem Hyper-V Test- und Entwicklungsrechner - also aus C:/Program Files/WindowsPowerShell/Modules - per Copy-Befehl holen.
  • Im Unterverzeichnis D:/DSC-Lab/DSC-PS01/Setup/Windows/Setup/Scripts wird eine Datei mit dem Namen SetupComplete.cmd abgelegt, über die die DSC-Konfiguration in der VM angestoßen wird. Dies ist eine “klassische” Windows Batch Datei, die vom Windows Setup automatisch zum Abschluss einer erfolgreichen Installation – also noch vor der ersten Login Möglichkeit – aufgerufen wird. Es ist der ideale Zeitpunkt, um die DSC-Konfiguration einer neu erzeugten VM anzustoßen. Dazu rufen wir ein Powershell Skript RunDSC.ps1 aus dem DSC-Verzeichnis der VM auf, das dann die eigentliche DSC-Konfiguration ausführt:

@echo off
PowerShell.exe -ExecutionPolicy RemoteSigned -File C:/DSCRunDSC.ps1
exit

  • Das Unterverzeichnis D:/DSC-Lab/DSC-PS01/Setup/DSC enthält alle Skripte und Daten, die für die DSC-Konfiguration der VM erforderlich sind. Für unseren Web Pull Server DSC-PS01 habe ich die folgenden Dateien hinterlegt, auf deren Inhalt ich gleich zu sprechen komme.

Ich habe mir Powershell Skripte geschrieben, die diese Verzeichnis- und Dateistrukturen für eine VM erzeugen. Ein Beispiel für unseren Web Pull Server DSC-PS01 finden Sie in der zum Download angebotenen Datei DSC-Lab.zip unter dem Namen New-DSC-PS01_SetupFiles.ps1. Ich will hier nicht näher auf dieses Skript eingehen, sondern nur die Inhalte der damit erzeugten Dateien etwas genauer betrachten. Hält man sich an die hier beschriebene Vorgehensweise zum Bereitstellen von Konfigurationsdaten, so kann man dieses Skript New-DSC-PS01_SetupFiles.ps1 als Vorlage auch für andere VMs verwenden. Die einzelnen Abschnitte muss man dann natürlich an die Anforderungen der VM anpassen.

Existiert beim Erzeugen einer VM mit dem im vorherigen Kapitel beschriebenen Konfigurationsskript DscHyperV_VM eine solche Setup-Struktur mit Konfigurationsdaten, wird diese mit der Ressource xVhdFile in die Root des Startlaufwerks der VM kopiert (Zeile 103-114).

Zurück zum Inhaltsverzeichnis ...

Die Konfiguration unseres DSC Web Pull Servers DSC-PS01 mit partiellen Konfigurationen

Im Teil 1 meiner DSC-Artikelserie habe ich das Thema Partielle Konfigurationen bereits kurz angeschnitten. Am Beispiel unseres Web Pull Servers will ich dies nun etwas genauer beleuchten.

Wenn wir eine neue VM erzeugt haben, müssen wir sie noch konfigurieren. Typischerweise sind dabei zumindest folgende Aktionen notwendig.

  • Wir müssen das Betriebssystem konfigurieren, also z.B. IP-Adressen zuweisen und dem Betriebssystem in der VM einen vernünftigen Computernamen geben. Ich will diesen Schritt hier als OSconfig bezeichnen.
  • Wir müssen die in der VM benötigten Anwendungskomponenten installieren und konfigurieren. Diesen Schritt will ich hier mit APPconfig bezeichnen. Die durchzuführenden Aktionen sind natürlich abhängig von den Funktionalitäten, die in der VM verfügbar sein sollen. Für einen DSC Web Pull Server müssen wir dazu die Windows Komponenten DSC Service und IIS sowie eine Web Service Anwendung - den DSC Web Pull Server - installieren und konfigurieren.
  • Dann müssen wir noch den Local Configuration Manager (LCM) in der VM konfigurieren und ihm die notwendigen partiellen Konfigurationsschritte bekannt machen. Ich will dies hier als LCMconfig bezeichnen.

In der Praxis bietet es sich an, für jede der Aktionen ein eigenes Konfigurationsskript zu erstellen.

Die Betriebssystemkonfiguration (OSconfig)

Beginnen wir mit der Betriebssystemkonfiguration. Dazu habe ich ein Konfigurationsskript OSconfig.ps1 sowie eine Powershell Datendatei OSconfig-data.psd1 erstellt. Beide Dateien liegen im Verzeichnis C:/DSC unserer VM:

:OSconfig.ps1:

Zum Festlegen der IP-Konfiguration der VM verwenden wir 3 Resourcen aus dem xNetworking Modul :

  • xIPAddress: Legt die IP-Adresse des bei InterfaceAlias angegebenen Netzwerkadapters fest. InterfaceAlias ist der Name des Adapters, wie er in der VM erscheint. Über PrefixLength wird die Netzmaske festgelegt und über AddressFamily legen wir fest, ob es sich um eine IPv4 oder IPv6 Adresse handelt.
  • xDefaultGateway: Hier wird die IP-Adresse für das Default Gateway festgelegt - in unserem Beispiel ist dies die Adresse unseres NAT-Switch.
  • xDNSServerAddress: Hiermit werden die IP-Adressen unserer DNS-Server festgelegt. In einem späteren Beitrag werde ich noch auf das Bereitstellen eines DNS-Servers per DSC eingehen. Da dieser Server - er wird die IP-Adresse 192.168.80.10 erhalten - momentan in unserer Lab-Umgebung noch nicht existiert,  definiere ich hier zusätzlich als alternativen DNS-Server meinen Internet Router (192.168.1.1), der dann automatisch verwendet wird, wenn der primäre DNS-Server nicht erreichbar ist.

Zum Festlegen des Computernamens verwenden wir eine Ressource aus dem Modul xComputerManagement:

  • xComputer: Diese Ressource weist dem Betriebssystem in der VM den gewünschten Computernamen zu und kümmert sich dann um den danach notwendig Neustart des Systems.

OSconfig-data.psd1:

Wozu diese Datendatei? Das Konfigurationsskript in OSconfig.ps1 ist neutral und kann in dieser Form für jede VM verwendet werden. Die echten Daten werden beim Kompilieren der Konfiguration in Form einer Powershell Datendatei mit dem Parameter -ConfigurationData übergeben (siehe Zeile 29). Für eine andere VM mit anderen Daten müssen dann nur die Werte in der Datendatei angepasst werden. In der TechNet Library finden Sie weitere Informationen zum Trennen von Konfigurationen und zugehörigen Daten.

Die Anwendungskonfiguration (APPconfig) für unseren Web Pull Server DSC-PS01

Analog zur Betriebssystemkonfiguration bauen wir auch die Anwendungskonfiguration auf: Ein Konfigurationsskript mit dem Namen APPconfig.ps1 und eine Datendatei APPconfig-data.psd1.

APPconfig.ps1:

APPconfig-data.psd1

Um einen DSC Web Pull Server zu konfigurieren, müssen wir zunächst einige Windows Komponenten installieren. Hierzu steht im DSC Standardmodul PSDesiredStateConfiguration eine Ressource WindowsFeature zur Verfügung.

Die Ressource WindowsFeature erwartet den Namen der zu installierenden Windows Komponente als Wert bei der Eigenschaft Name. Doch wie ermittelt man diesen Namen? Geben Sie in einem Powershell Konsolenfenster folgenden Befehl ein:

Get-WindowsFeature

Als Ergebnis erhalten Sie eine lange 3-spaltige Liste mit allen installierbaren Windows Komponenten. Die in der 2. Spalte mit der Überschrift "Name" ausgegebenen Bezeichnungen sind die Werte, die von der Ressource WindowsFeature erwartet werden.

Die erste Komponente, die für einen DSC Web Pull Server installiert werden muss, ist der DSC Service. Die Ressource WindowsFeature sorgt dafür, dass alle weiteren dafür notwendigen Windows Komponenten ebenfalls installiert werden, insbesondere hier der IIS, jedoch ohne die GUI Tools mit dem Namen Web-Mgmt-Tools. Diese installieren wir mit einer weiteren WindowsFeature Instanz. Durch Angabe von 'Present' bei der Eigenschaft Ensure wird die Komponente jeweils installiert, mit der Angabe 'Absent' würde sie deinstalliert werden.

Anmerkung: Die Ressource WindowsFeature kann nur auf Server Betriebssystemen verwendet werden. Sie setzt auf dem Server Manager des Betriebssystem auf, der bei Client Betriebssystemen wie Windows 10 nicht vorhanden ist. Als Alternative steht dort eine Ressource WindowsOptionalFeature mit ähnlicher Funktionalität zur Verfügung.

Nun können wir mit der Ressource xDSCWebService aus dem Modul xPSDesiredStateConfiguration die eigentliche Web Service Anwendung für den Web Pull Server installieren.

Normalerweise sollte die Kommunikation zwischen einem DSC Web Pull Server und den Clients mit SSL verschlüsselt werden. Für unsere Lab-Umgebung verzichten wir darauf, um die Sache nicht zu kompliziert zu gestalten. Deshalb setzen wir die entsprechenden Eigenschaften wie folgt:

  • AcceptSelfSignedCertificates = $false
  • CertificateThumbPrint = "AllowUnencryptedTraffic"
  • UseSecurityBestPractices = $false

Weiterhin verlangt die Ressource, dass wir einen Namen festlegen, unter dem der Web Service erreichbar ist ("Endpoint") und den zugehörigen IP-Port.

Und dann müssen wir natürlich noch die Pfadnamen festlegen, wo die Web Service Anwendung installiert werden soll (PhysicalPath - hier in der Root des IIS) und wo Konfigurationsskripte und DSC-Ressourcen Module abgelegt werden sollen.(ConfigurationPath und ModulePath).

Auch wenn wir bei der Kommunikation mit dem Pull Server auf Verschlüsselung verzichten, so muss sich ein Client trotzdem authentisieren. Der Authentisierungscode besteht aus einer GUID, die in einem RegistrationKeyFile auf dem Web Server hinterlegt ist. Jeder Client, der mit dem Pull Server kommunizieren will, muss diesen Authentisierungscode beim Verbindungsaufbau als "Ticket" vorzeigen. Eine GUID kann man sich in der Powershell mit dem Befehl

New-Guid

erzeugen. Den angezeigten Wert hinterlegen wir in der Datendatei APPconfig-data.psd1 und lassen ihn mit einer Instanz der File Ressource in die angegebene Datei schreiben.

Die Konfiguration des Local Configuration Managers (LCM) für unseren DSC Web Pull Server DSC-PS01

Jetzt fehlt uns noch das Konfigurationsskript für den Local Configuration Manager (LCM) in unserer VM. Es ist in der Datei LCMconfig.ps1 hinterlegt.

Im Ressourcenblock Settings legen wir die globalen Einstellungen für den LCM fest. Konfigurationen müssen im Push-Modus übergeben werden (RefreshMode = 'Push'), dabei ist das überschreiben vorhandener Module erlaubt (AllowModuleOverwrite = $true) und wir arbeiten im Debug-Modus (DebugMode = 'All'). Weiterhin legen wir fest, dass ein automatischer Neustart des Systems erfolgen soll, falls dies notwendig ist - z.B. nach dem Ändern des Computernamens (RebootNodeIfNeeded = $true) und dass danach die Konfiguration fortgesetzt werden soll (ActionAfterReboot = 'ContinueConfiguration'). Dann definieren wir noch die Zeitintervalle, nach denen der LCM jeweils aktiviert wird und dass er im Falle von Konfigurationsänderungen automatisch die ursprüngliche Konfiguration wieder herstellen soll (ConfigurationMode = 'ApplyAndAutoCorrect').

Nach dem Festlegen dieser globalen Einstellungen müssen wir den LCM noch informieren über seine partiellen Konfigurationen. Dies geschieht jeweils mit einem Ressourcenblock PartialConfiguration. Der Name des jeweiligen Blocks muss exakt dem Namen der jeweiligen partiellen Konfiguration entsprechen.

Das Initiieren der DSC-Konfiguration in der VM nach der Windows Installation

Weiter oben habe ich bereits erwähnt, dass wir im Betriebssystem der VM eine Batchdatei SetupComplete.Cmd hinterlegt haben, die vom Windows Setup automatisch als letzte Aktion aufgerufen wird. Aus dieser Batchdatei heraus starten wir die Powershell, um ein Skript RunDSC.ps1 auszuführen.

Dieses Skript führt jetzt die einzelnen Schritte aus zum Initiieren der DSC-Konfiguration in der VM.

  • Mit Set-Location -Path $PSScriptRoot setzen wir das Arbeitsverzeichnis auf unser Skript-Verzeichnis C:/DSC
  • Durch den Aufruf des Skripts Rename-NetAdapterToHyperVDeviceNaming.ps1 - Sie finden es ebenfalls in der Download Library DSC-Lab.zip - werden die Namen der Netzwerkadapter innerhalb der VM (sie heißen normalerweise Ethernet, Ethernet 2, ...) auf die Namen geändert, die im Hyper-V festgelegt sind und für die die Eigenschaft DeviceNaming auf 'On' steht. In unserem Beispiel hat der Netzwerkadapter in der VM nun nicht mehr den Namen Ethernet, sondern heißt jetzt Mgmt.
  • Nun kompilieren wir das Konfigurationsskript für den LCM und übergeben es ihm durch einen Aufruf des Cmdlets Set-DscLocalConfigurationManager. Der LCM wartet jetzt auf die Übergabe der partiellen Konfigurationen.
  • Zunächst wird die Betriebssystemkonfiguration OSconfig.ps1 kompiliert und dem LCM mit Publish-DscConfiguration bekannt gemacht.
  • Analog verfahren wir mit der Anwendungskonfiguration APPconfig.ps1.
  • Der LCM hat nun alle Angaben, um seine Arbeit aufzunehmen, d.h. wir können jetzt mit Start-DscConfiguration die Konfiguration starten. Durch den Parameter -UseExisting weisen wir ihn darauf hin, die zuvor übergebenen partiellen Konfigurationen zu verwenden.

Zurück zum Inhaltsverzeichnis ...

Der DSC Web Pull Server DSC-PS01 entsteht

Jetzt ist endlich der Zeitpunkt gekommen, wo wir unseren DSC Web Pull Server DSC-PS01 als VM im Hyper-V erzeugen können. Nachdem alle Konfigurationsdaten in der zuvor beschriebenen Verzeichnisstruktur abgelegt sind, verwenden wir das eingangs beschriebene Konfigurationsskript DSCHyperV-VM0.ps1 und führen in einer Powershell (ISE) Sitzung folgende Befehle aus (bitte mit Administratorrechten starten!);

  1. Wechseln Sie in das DSC-Lab Verzeichnis
  2. Laden Sie das Konfigurationsskript per Dot Sourcing in den globalen Arbeitsbereich der Powershell ISE Sitzung
  3. . ./DSCHyperV_VM0.ps1

  4. Kompilieren Sie das Skript mit folgendem Befehl
  5. DSCHyperV_VM -VMname DSC-PS01 -ParentVhdPath `
    E:/Hyper-V/WS2016_GPT_DCGUI.vhdx -OutputPath ./DSC-PS01 -Verbose

  6. Starten Sie die Konfiguration der VM
  7. Start-DscConfiguration -wait -force -Verbose -Path ./DSC-PS01

Wir können uns jetzt mit der VM DSC-PS01 über den Hyper-V Manager verbinden und den weiteren Ablauf mitverfolgen.

Start und Konfiguration

Der Windows Setup startet ...

Jetzt wird der LCM im Hintergrund aktiv. Es wird durch das Setzen des neuen Computernamens während der Betriebssystemkonfiguration ein Neustart durchgeführt ..

... und dann können wir uns als Administrator anmelden (das Kennwort haben wir ganz am Anfang in der Unattend.xml festgelegt!).

Im Server Manager können wir das System schon mal inspizieren, während im Hintergrund noch die Anwendungskonfiguration (APPconfig) läuft. Nicht verzweifeln, das kann einige Minuten dauern!

Funktionsprüfung

Starten Sie in der VM den Internet Explorer (oder einen anderen Browser) und geben Sie folgende URL in das Adressfeld ein:

http://localhost:8080/PSDSCPullServer.svc

Wenn dann im Browser-Fenster XML-Code erscheint, der ähnlich aussieht wie in der nebenstehenden Abbildung, dann können Sie davon ausgehen, dass der Web Service mit dem Pull Server korrekt installiert und konfiguriert wurde. Die Bedeutung des XML-Codes soll uns hier nicht weiter interessieren.

Zurück zum Inhaltsverzeichnis ...

Troubleshooting

Wenn Sie den Beschreibungen in diesem Artikel folgen und dabei auch gleich die Skripte aus der angebotenen Download Library DSC-Lab.zip verwenden, sollten Sie eigentlich ohne Probleme die Szenarien nachvollziehen können. Doch was tun, wenn's mal nicht klappt?

Ich will Ihnen hier ein paar Tipps geben, wie Sie Probleme aufdecken können.

Solange wir interaktiv mit DSC Konfigurationsskripten arbeiten und dabei den Parameter -Verbose angeben, sehen wir im Powershell Fenster immer ein ausführliches Protokoll über die von den DSC Ressourcen ausgeführten Aktionen. Bei einem dabei auftretenden Problem werden entsprechende Powershell Fehlermeldungen mit protokolliert. So kann man in den Konfigurationen schon mal mit der Fehlersuche bei den Ressourcen Blöcken beginnen, bei denen der Fehler auftritt.

Spannender wird es, wenn man bei unseren Szenarien feststellt, dass eine DSC Konfiguration in einer erzeugten VM nicht so abläuft, wie man sich das vorgestellt hat. In diesem Fall sieht man interaktiv zunächst nichts, man merkt nur, dass die VM nicht richtig arbeitet.

In einem solchen Fall muss man in der VM selbst die Problemstelle suchen. Dazu gibt es folgende Hilfsmittel:

  • Die Ereignisanzeige (Event Viewer) in der VM
  • Protokolldateien in der VM

Die Ereignisanzeige (Event Viewer) in der VM

Der Local Configuration Manager (LCM) führt einen eigenen Kanal im Windows Ereignisprotokoll. in dem alle Aktionen aufgeführt sind. In der Windows Ereignisanzeige (Event Viewer) findet man dieses Protokoll in der Kategorie Operational unter Application and Services Logs -> Microsoft -> Windows -> Desired State Configuration. Es ist zwar mitunter etwas mühsam, in der Fülle der protokollierten Ereignisse geeignete Hinweise zu finden, aber im Fehlerfall sollte man hier einen Blick hineinwerfen.

Protokolldateien

Neben den Einträgen in der Ereignisanzeige erstellt der LCM auch ausführliche Protokolldateien, deren Inhalt den Ausgaben beim interaktiven Arbeiten entsprechen. Die Dateien werden im Verzeichnis C:/Windows/System32/Configuration/ConfigurationStatus angelegt mit der Namenerweiterung .JSON. Leider bestehen die Dateinamen aus GUIDs, so dass eine Suche damit relativ sinnlos ist. Einfacher wird es, wenn man sie nach Datum / Uhrzeit sortiert.

Die .JSON-Dateien enthalten Text, der mit einem Editor wie Notepad angeschaut werden kann.

Praxistipp für unser Vorgehen

Zum Testen der in diesem Blogpost vorgestellten Skripte hat sich folgendes Vorgehen bewährt: In der problembehafteten VM starte ich eine Powershell ISE Sitzung mit Administratorrechten und lade das Skript RunDSC.ps1, das ja alle für die VM vorgesehenen DSC Aktionen sequentiell aufruft. Nun kann man mit den Debug-Funktionen der Powershell ISE die Problemstelle bei der DSC Konfiguration ermitteln.

Wichtig: Korrigieren Sie Fehler nicht nur in der VM, sondern vor allem auch im Setup-Verzeichnis der VM bzw. im Skript, mit dem Sie die Setup-Verzeichnisstruktur auf Ihrem Test- und Entwicklungsrechner erzeugen (im Beispiel hier New-DSC-PS01_SetupFiles.ps1), damit bei einem erneuten Versuch, die VM zu generieren, Korrekturen dann auch in die neue VM übernommen werden.

Zurück zum Inhaltsverzeichnis ...

Wie geht's weiter?

In diesem Artikel habe ich anhand von ein paar Beispielen eine Vorgehensweise aufgezeigt, wie man DSC in einer eigenen Systemumgebung einsetzen kann. Ich weiteren Beiträgen werde ich mich um die Nutzung des hier installierten Pull Servers durch Pull Clients kümmern und auch einige weitere Einsatzszenarien beschreiben.

Zurück zum Inhaltsverzeichnis ...

Links

Eigene Blogbeiträge:

DSC allgemein:

Zurück zum Inhaltsverzeichnis ...

Der Beitrag Desired State Configuration (DSC) und Windows Server 2016 – Teil 2: VMs im Hyper-V, Partielle Konfigurationen und ein Web Pull Server erschien zuerst auf Hyper-V Server Blog.

Mark Heitbrink: gp-pack PaT - Privacy and Telemetry

complete GP Ruleset, additional Scripts and ADM Template

Don't contact us via this (fleischfalle@alphasierrapapa.com) email address.