NWC Services Blog
Um den Grad der Dynamisierung einer Installation zu erhöhen bieten sich in SCCM bekanntlich mehrere Stellen an, an denen Variablen gesetzt werden können. Hierbei gilt jedoch die Reihenfolge der Abarbeitung zu beachten, sofern dieselbe Variable an unterschiedlichen Stellen verwendet wird. Grundsätzlich werden zuerst Sammlungsvariablen ausgewertet, danach Gerätespezifische Variablen die die Sammlungsvariablen im Ernstfall überschreiben und danach Task Sequenz Variablen die den Wert der Gerätespezifischen Variablen wiederrum überschreiben würden. Hinzu kommt die Tatsache, dass diese Variablen immer nur zur Laufzeit einer Task Sequenz verwendet werden können und danach nicht mehr zur Verfügung stehen.
In manchen Fällen, wie z.B. bei einer Neuinstallation eines Computers, kann es jedoch durchaus hilfreich sein sich alle während der OS Installationsphase verfügbaren Task Sequenz Variablen anzeigen oder im Bedarfsfall sogar weg schreiben zu lassen um diese auch nach der Ausführung der Task Sequenz, wenn auch nur mit den zur Laufzeit aktuellen Werten, zur Verfügung zu haben.
In diesem Artikel möchte ich kurz darauf eingehen wie man sich während einer Neuinstallation im PE alle Task Sequenz Variablen anzeigen lassen und diese z.B. in Form einer Log Datei oder in der Registry speichern kann.
Einleitung
Mittlerweile unterstützen alle namhaften Hersteller für Software-Paketierungswerkzeuge das neue Microsoft Paketformat MSIX. Microsoft selbst liefert ein Gratiswerkzeug, um bestehende Win32 Applikationen in das neue Paketformat zu konvertieren, genauer zu repaketieren. Folgende technische Voraussetzungen werden für das Werkzeug genannt:
- Windows 10 (mindestens Version 1809)
- Ein gültiges Microsoft Konto, um das Tool aus dem Windows Store zu beziehen
- Administrator-Berechtigungen auf dem zu installierenden System
Der folgende Artikel soll einen kurzen technischen Einstieg in die neue Version des Microsoft Installer liefern. In einem folgenden Artikel wird auf Werkzeuge und Methoden eingegangen, MSIX Pakete zu erzeugen oder bestehende Softwarepakete (MSI / Setup) in das neue Format zu migrieren.
Einführung
Microsoft hat auf dem Microsoft Developer Day im März 2018 die Zukunft der Softwareinstallation für Windows 10 basierte Geräte vorgestellt. MSIX ist eine vollständige „Containerisierungslösung“, welche alle großen Features von Universal Windows Plattform (UWP) übernimmt. Unterstützt werden Desktop, mobile und alle anderen Windows 10 – Geräte.
Technisch gesehen basiert MSIX auf dem AppX Paket Framework (ursprünglich lediglich für UWP Anwendungen verwendet) und wurde entwickelt, um klassische Windows Anwendungen besser zu unterstützen.
Da die Verlinkung von AD Gruppen und Device Collections in SCCM relativ komplex ist, es jedoch über die Konsole standardmäßig keine andere Möglichkeit der Anlage gibt, möchte ich heute wie bereits in meinem letzten Post angekündigt zeigen, wie eine Device Collection mit AD Mitgliedschaftsregel auch schnell und einfach per PowerShell angelegt werden kann.
Hierfür möchte ich in diesem Beitrag lediglich die einzelnen Schritte, sowie alle benötigten Komponenten und PowerShell Cmdlets erklären. Aus diesen sehr statischen Befehlen kann man natürlich später jeden Grad von Automatisierung erreichen, bis hin zu grafischen Oberflächen bzw. einem kleinen Custom Wizard, der sich bei Bedarf sogar in das Kontextmenü der SCCM Konsole integrieren lässt.
Wie bereits in meinem Blog Artikel zur SCCM Content Library beschrieben, hat sich das Content Management seit SCCM 2012 grundlegend geändert. Da es aufgrund dieser Änderungen relativ schwierig ist die einzelnen Ordner der Content Library zu durchsuchen und die darin befindlichen Dateien herauszufinden wurde als Teil des ConfigMgr Toolkits (https://www.microsoft.com/en-us/download/details.aspx?id=50012) ein kleines aber extrem hilfreiches Tool von Microsoft veröffentlicht um die Content Library einfach durchsuchen zu können.
In diesem aufbauenden Artikel möchte ich nun auf den Content Library Explorer und einige seiner Funktionen etwas näher eingehen.
Vor kurzem wurde ich wieder einmal von einem Kunden darauf angesprochen, dass bereits distribuierte Pakete nicht automatisch von Depots gelöscht werden, wenn man die Distributionziele am Paket bereinigt. Somit stellt sich vielen Kunden aber auch die Frage, wie man seine Depots demnach am besten aufräumen kann, da sich über die Jahre natürlich viele Daten ansammeln, die eigentlich nicht mehr gebraucht werden bzw. schon gar nicht mehr am ein oder anderen Depot liegen sollten.
Da diese Aussage jedoch seit DSM 2014.1 nur noch teilweise korrekt ist und man mithilfe einer neuen Infrastruktur Einstellung dieses Verhalten ändern kann, möchte ich in diesem Artikel kurz zeigen, wie man seine Pakete anhand der Job Definition automatisch bereinigen lassen kann.
Jeder stand wohl schon vor der Herausforderung wie reibungslose Updates einer Software von statten gehen sollen. Um hier eine Hilfestellung zu geben hat Ivanti mit der Version 2016 das Hilfsmittel der „Replacement-ID“ eingeführt.
Im Folgenden möchte ich kurz erläutern wie mit dieser Umgegangen werden kann und auf was man bei der Verwendung achten sollte.
Auf Grundlage des Blogs Das Konzept der Fileablage in SCCM (SCCMContentLib) meines Kollegen wollen wir uns einmal mit dem Aufbau der Verzeichnisstrukturen der beiden Softwareverteillösungen Ivanti DSM und Microsoft SCCM befassen.
Der erste Schritt ist, dass wir die beiden Strukturen gegenüberstellen:
Innerhalb von Ivanti DSM gibt es zwei Verzeichnisse unterhalb der eigentlichen Freigabe auf dem Master-Depot-Server.
Für SCCM Neulinge mag die Art und Weise der Dateiablage in SCCM zunächst etwas unübersichtlich/undurchsichtig erscheinen, was wohl an dem mit System Center 2012 Configuration Manager eingeführtem Konzept der "Content Library" liegt.
Der Grundgedanke ist die effektive Speicherung von Daten auf dem Fileshare nach dem Prinzip des "Single Instance Storage". Hierbei werden Dateien die von mehreren Software Paketen benötigt werden, wie z.B. eine bestimmte DLL oder EXE, jeweils nur einmal gespeichert und lediglich eine Mapping-Referenz zwischen einer bereits existierenden Datei und dem neuen Software Paket hinzugefügt. Somit wird nicht nur der Traffic zwischen den Distribution Points reduziert um ein neues Paket bereit zu stellen, sondern auch die Zeit für die Bereitstellung reduziert.
Da es, wie in meinem Einleitungssatz bereits erwähnt, jedoch nicht immer ganz einfach ist hier die Übersicht zu behalten, möchte ich mit diesem Artikel etwas Licht ins Dunkel bringen.
Bei der Paketierung in DSM gibt es ja verschiedene Möglichkeiten, dafür zu sorgen, dass Pakete nur unter bestimmten Bedingungen und Voraussetzungen auf den gemanagten Clients installiert werden. Zu nennen wären hier (ohne Anspruch auf Vollständigkeit):
- unterstützte Plattformen
- serverseitige Voraussetzungen
- clientseitige Voraussetzungen
- Bedingungen für vorhandene Installationen
Die Bedingungen für unterstützte Plattformen sollten klar sein: es werden nur für die Policy-Ziele auch Policy-Instanzen erzeugt, die eine der von dem Paket unterstützten Plattformen verwenden. Ebenso verhält es sich mit serverseitigen Voraussetzungen, auch hier wird eine Policy-Instanz nur dann erzeugt, wenn der Business Logic Server erkennt, dass die angegebenen Voraussetzungen von einem Policy-Ziel erfüllt sind.
Anders verhält es sich jedoch bei clientseitigen Voraussetzungen: für die Policy-Ziele werden auf jeden Fall Policy-Instanzen erzeugt (sofern die Plattform-Einstellungen und serverseitigen Voraussetzungen dem nicht widersprechen). Da DSM aber nicht alle erdenklichen Zustände über die verwalteten Clients in seiner Datenbank speichern kann, werden solche clientseitigen Voraussetzungen erst zur Laufzeit auf den Endgeräten geprüft und dann entschieden, ob die Installation ausgeführt wird oder nicht.
Ein naheliegender Anwendungsfall für die Verwendung von clientseitigen Voraussetzungen ist daher beispielsweise die Prüfung, ob genug freier Speicherplatz für die Installation eines Pakets zur Verfügung steht oder ob die Installation durch die Existenz eines Flags in der Registry oder im Dateisystem erlaubt ist. Bei diesem Vorgehen lauert jedoch "eine böse Falle"...