Ergebnis Beta-Prüfung: 70-537 Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack
Am 13.März 2018 habe ich mich an der Beta-Prüfung zur Azure Stack Implementierung gewagt. Innerhalb der Prüfung wurden sehr viele Powershell Befehle abgefragt. Da die Praxiserfahrungen mit Azure Stack zu dem Zeitpunkt noch nicht so groß waren, hatte ich eher die Befürchtung diese Prüfung nicht bestanden zu haben. Umsomehr hat es mich gefreut, dass ich letzten Sonntag überraschend eine E-Mail bekommen habe, dass die Prüfungsergebnisse vorliegen und ich die Prüfung bestanden habe. Die Punktzahl von 782 ist sogar recht positiv. (700 hätten zum Bestehen gereicht). Nur im Bereich Monitoring muss ich mich noch verbessern:
automateAppDeployment – Version 0.7
Nach ewiger Zeit steht endlich eine neue und deutlich fehlerbereinigte Version des Toolkits zur automatischen Verteilungen im ConfigMgr in der Version 0.7 zusammengestellt. Es ist mit der neuesten ConfigMgr Powershell Version und dem neuesten PowerShell App Deployment Toolkit (http://psappdeploytoolkit.com/) in der Version 3.6.9 getestet.
Folgende Punkte haben sich geändert:
0.7 – 2017-05-30
- BUG: InnoSetup Logging Fehler (geänderte interne Variable im PS AppDeploy)
- NEW: Besseres Fehlerhandling in Powershell. Somit werden Fehler nicht mehr ignoriert, sondern im Zweifel die Verarbeitung abgebrochen
- NEW: Dadurch viele Fehler behoben
- NEW: In den globalen Einstellungen können jetzt alle Pfade mittels Variablen angepasst werden ({Manufacturer}, {ProductName}, {ProductVersion}, {bitrate}, {languageID}, …)
- NEW: Neue XML Variable languageID in appsettings.xml. Bis auf die Verwendung in Pfaden keine weitere Auswirkung
- NEW: Am Ende des Erstellens wird ein Machine Policy Trigger auf die Testcollection gesetzt
- BUG: Probleme mit verschachtelten Aliasen im ConfigMgr PS Code behoben, in dem die Ursprungsfunktionen verwendet werden
- NEW: Verbessertes XML Handling
Download: automateAppDeployment (version 0.7) (41188 downloads )
ConfigMgr: .Net 3.5 für Windows 2012 R2 verteilen
Anbei ein kleines Script, um für Windows 2012 R2 das .Net Framework 2-3.5 nachzuinstallieren. Dafür ist der SXS von der Installations-CD notwendig. Dafür wird die OS Language ausgelesen und verwendet, um das passende SXS Verzeichnis zu verwenden.
Somit legt man für jede notwendige Betriebssystemsprache ein Unterordner mit Namen des Laguage Codes (1031 für deutsch, 1033 für englisch, …) an und kopiert den Inhalt des jeweiligen SXS Ordners dort hinein.
Als Vergleichsfile habe ich willkürlich das microsoft.build.tasks.v3.5.dll genommen. Dies ist aber in diesem Fall nicht weiter relevant.
(Anmerkung: Ich habe den Produktnamen bewusst gekürzt, da es sonst bei den SXS Ordner beim Kopieren in die Zielordner zu Dateilängen über 256 Zeichen komme und das normale Powershell Kopierkommando damit nicht zurecht kommt)
Cloud Proxy mit ConfigMgr TP 1607 einrichten
Cloud Proxy ist eine neue Funktion in 1606 Technical Preview, die mobilen Geräten eine einfache Verbindung zum ConfigMgr ermöglicht. Dabei ist On-Premise keine DMZ notwendig.
Der Cloud Proxy wird durch den ConfigMgr selber installiert. Dazu muss der Server auf das entsprechende Azure Konto zugreifen können. Klassisch und auch in diesem Fall erfolgt dies über ein Management Zertifikat. Der Public Key dieses Schlüssels wird in Azure hochgeladen und jeder mit dem Privat Key kann administrativ auf das Konto zugreifen.
Managementzertifikat erstellen
Software Update Baselines
Automatic Deployment Rules (ADR) sind bei der Verteilung von Updates hilfreich, da sie automatisiert für jeden Monat (oder häufiger) neue Software Update Gruppen anlegen können, die nur die benötigten Updates beinhalten und somit die Gruppengrößen klein halten. Eine entsprechende Strategie habe ich bereits 2014 beschrieben. Kommt aber ein Client nach längerer Zeit wieder ans Netz, dann fehlen u.U. in den aktuellen Gruppen notwendige Updates, die erst bei der nächsten automatischen Regelabarbeitung wieder heruntergeladen werden müssen.
automateAppDeployment – Version 0.6
Nach langer Zeit habe ich endlich meine über Wochen entwickelte neue Version des Toolkits zur automatischen Verteilungen im ConfigMgr in der Version 0.6 zusammengestellt. Es benötigt die aktuelle ConfigMgr Powershell Version.
Folgende Punkte haben sich geändert:
0.6 – 2016-02-10
- NEW: Benutzer jetzt die neue Methode Add-CMScriptDeploymentType
- NEW: Verwendet die neue Methode -AvailableDateTime
- NEW: Hash Wert wird im Admin-Kommentar hinterlegt. Ziel ist die Verwendung als deprecated bzw. dependance
- NEW: Im XML File können deprecated Anwendungen über den Hash Wert angegeben werden, die automatisch hinterlegt werden
- NEW: Im XML File können Gruppen von dependent Anwendungen hinterlegt werden, die als Voraussetzung in der Anwendung hinterlegt werden (aktuell nur mit einer Anwendung pro Gruppe getestet)
- NEW: Neue Setupart MSP. Macht aktuell nicht viel anderes als das MSI Setup, aber extrahiert weniger aus der MSI Tabelle (da es meistens nicht gefüllt ist). Dafür nutzt es die ProductID
Download: automateAppDeployment (version 0.6) (2978 downloads )
ConfigMgr: Powershell Library Update
Vor einiger Zeit wurde die Powershell Library für ConfigMgr aus den Cumulative Updates herausgenommen und wird getrennt veröffentlicht. Dadurch können andere Releasezyklen genutzt werden.
Jetzt wurde vor zwei Tagen eine neue Version veröffentlicht:
Sie ist verwendbar für alle aktuellen Configuration Manager Versionen:
- System Center 2012 Configuration Manager SP2
- System Center 2012 R2 Configuration Manager
- System Center 2012 R2 Configuration Manager SP1
- System Center Configuration Manager (current branch version 1511)
Und funktioniert auch mit der aktuellen Preview. In der Preview 1601 soll sie bereits enthalten sein.
ConfigMgr: JRE 8u66 verteilen
Seit längerem stört es mich, dass man für die JRE Verteilung immer noch das MSI File extrahieren muss. Das macht den Sinn vom AutomaticAppDeployment kaputt, da mehr manuelle Schritte notwendig sind.
Ursache dafür ist ein alter Bug im Oracle JRE Setup, der Probleme mit der Installation im SYSTEM Kontext von 32bit Java unter x64 Betriebssystemen hat. Der Bug ist u.a. hier dokumentiert: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7014194
Angeblich ist der Fehler bereits in 8u51 behoben. Meine Realität sieht aber anders aus.
automateAppDeployment – Version 0.5
Das Toolkit zum automatischen Erstellen von Verteilungen im ConfigMgr ist jetzt in der Version 0.5 verfügbar.
Folgende Punkte haben sich geändert:
-
0.5 – 2015-09-29
-
NEW: MSI Product Code kann ebenfalls überschrieben werden (z.B. beim Mumble Client)
-
BUG: Fehler im InnoSetup Powershell Code korrigiert.
-
NEW: GlobalDef Variable, um nur die Dateien anzulegen und keine ConfigMgr Integration durchzuführen.
-
BUG: Falls der Files Ordner im Template noch nicht existiert, scheiterte das Kopieren.
-
BUG: Bei der neuen AppDeploymentToolkit Version wurde die Abschlussmeldung nicht mehr entfernt.
Bootzeit- und Gruppenrichtlinienperformance
Je nach Komplexität der Gruppenrichtlinien können diese den Bootvorgang stark beeinflussen. Besonders deutlich wird dies, wenn Netzwerklaufwerke verbunden werden, die nicht mehr erreichbar sind. Dann verzögert sich die Abarbeitung bis zu eine Minute pro Laufwerk.
Daher ist es sinnvoll, die Abarbeitungszeiten pro Client Side Extension (CSE) auszuwerten. Dadurch ist sehr schnell sichtbar, in welchen Bereichen die meiste Zeit verbraucht wird.
Seit Vista (und ich denke keiner wird mehr Performanzmessungen an Windows XP Rechner vornehmen wollen) ist dies durch das Eventlog sehr einfach möglich. Die entsprechenden Daten liegen in den Anwendungslogs unter Microsoft/Windows/GroupPolicy/Operational und sind mit der Event ID 5016 gekennzeichnet.