Das Thema Software-Management existiert schon lange und die einfache Verteilung beherrschen mittlerweile viele Tools. Heutzutage reicht es aber nicht mehr aus, einfach eine MSI-Datei (Microsoft Software Installationsdatei) oder eine typische EXE-Datei ausführen zu können. Eine ausgereifte Software-Management-Lösung hat viel mehr Funktionen. Sie benötigt beispielsweise sogenannte «Detection Rules» (Erkennungsregeln), welche vor dem Herunterladen und der Installation prüfen, ob eine Software bereits auf dem Client installiert ist oder nicht. Diese Erkennungsregeln müssen vielfältig konfigurierbar sein. Es muss möglich sein, auf verschiedene Registry-Einträge, vorhandene Dateien mit deren Versionen oder auch auf MSI GUIDs (Globally Unique Identifier) zu prüfen. Diese Möglichkeiten müssen mittels Operatoren (und, oder, nicht) verknüpfbar sein.
Ähnlich wie die Detection Rules funktionieren die sogenannten «Applicability Rules» (Anwendungsregeln), mit welchen man zuerst prüft, ob die Basis für eine Installation der Software in Ordnung ist. Hiermit kann man zum Beispiel die Architektur (x86 oder x64) oder die Sprache eines Betriebssystems abfragen. Die Installation des jeweiligen Programms wird dabei nur gestartet, wenn die Regel (z.B. die Architektur des Betriebssystems ist 64-Bit) zutrifft und es somit überhaupt möglich ist, diese Software auf diesem Client zu installieren.
Zentraler Software-Katalog
Das moderne Software-Management basiert idealerweise auf einem Software-Katalog. Darin werden alle Applikationen, welche im Unternehmen existieren, verwaltet. Gemeint sind damit Applikationen in Form von verteilbaren Paketen oder inventarisierter Software, die bereits auf Clients installiert ist. Jede Software-Ressource ist in einem solchen Katalog mit den wichtigsten Eigenschaften erfasst. Basierend auf diesen Informationen ist es möglich, andere Lösungen mit diesen Metainformationen zu bedienen. Wenn es beispielsweise eine Lösung gibt, welche das Ausführen von Anwendungen misst oder verhindert, kann beziehungsweise sollte sie auf die Daten aus dem Software-Katalog zugreifen.
Der Katalog dient weiter auch als Basis für die Implementierung eines Tools für die Lizenzverwaltung. Man kann Software-Ressourcen mit unterschiedlichen Minor-Versionen zu Produkten basierend auf der Major-Version zusammenfassen und verknüpft dann nur diese mit den Lizenzen. Im Software-Katalog und in der Verteilrichtlinie sollte es ausserdem möglich sein, die Abhängigkeiten der verschiedenen Anwendungen zu verwalten. Möglicherweise benötigt eine Anwendung ein Microsoft .Net Framework als Grundlage. In diesem Fall muss bei einem Rollout dieses, falls nötig, jeweils zuerst installiert werden. Auch allfällige Updates brauchen eine Beziehung zur dazugehörigen Anwendung.
Skalierbar und flexibel
Eine ausgereifte Software-Management-Lösung bietet ferner verschiedene Möglichkeiten zur Paketverteilung. Neben EXE und MSI ist es unbedingt notwendig, dass auch Script-Sprachen wie Visual Basic oder Powershell ausgeführt werden können. Wenn eine Firma eine heterogene Infrastruktur verwaltet, ist es vorteilhaft, wenn diese mit der gleichen Lifecycle-Lösung verwaltet wird. Dann müssen auch Pakete für Mac OS X oder Linux-Distributionen unterstützt werden.
Das Paket an sich ist von Vorteil in einer DSL (Definitive Software Library) mit spezifischen Zugriffsrechten abgelegt, damit unabsichtliches Verändern über das Dateisystem verhindert wird.
Die Client-Management-Lösung muss zudem einfach skalierbar sein. Es braucht verschiedene Infrastrukturkomponenten, welche man flexibel je nach Design anordnen kann. Seien dies Paket-Server, welche die Software-Pakete mit einer reduzierten Bandbreite (Throttling) zu den entfernten Standorten des Unternehmens synchronisieren oder auch Task Server, die Aufgaben vom Haupt-Server übernehmen.
Freie Wahl des Installationszeitpunktes
Zu den Minimalanforderungen eines zeitgemässen Tools für die Software-Verwaltung gehört weiter, dass der Rollout einer Anwendung mit verschiedenen Benutzern ausgeführt werden kann. Die drei wichtigsten Möglichkeiten sind dabei der Windows-System-Account, ein bestimmter Benutzer oder auch der angemeldete Benutzer. Bei gewissen Anwendungen kann es nämlich nötig sein, dass man vor der Installation den Benutzer informiert oder eine Installation nur ausführt, wenn kein Benutzer angemeldet ist. Und: Wenn eine Installation einen Neustart erfordert, so muss dieser direkt mit der Software-Management-Lösung ausgelöst werden können. Somit hat der Benutzer, beispielsweise durch die Benachrichtigung mit einem Popup-Fenster, jederzeit die Möglichkeit, den Neustart zu verschieben.
Mittels einer Software Deploy Policy, also einer Verteilrichtlinie, sollten sich verschiedene Anwendungen auch «verketten» und somit gezielt ausrollen lassen. Hilfreich ist ebenfalls, wenn die Prüfung mittels Detection Rule bereits zu einem früheren Zeitpunkt stattfinden kann, und ein grosses Paket, wie beispielsweise Office 2013, bereits mit begrenzter Bandbreite heruntergeladen wird. Somit kann die Installation für alle Clients zum gleichen Zeitpunkt ausgelöst werden, egal ob die Download-Zeit 15 Minuten oder sechs Stunden beträgt.
Der eigentliche Installationszeitpunkt muss auf jeden Fall frei gewählt werden können, und je nach Umgebung macht es zudem Sinn, eine regelmässige Prüfung einzubauen. Diese stellt sicher, dass eine Software immer noch installiert ist. Eine gute Software-Management-Lösung verfügt ausserdem auch über die Möglichkeit, Wartungsfenster zu definieren. In solch einem Wartungsfenster können zum Beispiel vordefinierte Industrie-Computer zu einem bestimmten Zeitpunkt ausserhalb der Arbeitszeit mit neuer Software oder Aktualisierungen bestückt werden.
Ob ein Software Rollout erfolgreich war, kann einem nur eine ausgereifte Reporting Engine beantworten. Ein Muss sind vorgefertigte Reports, welche sich noch mittels Parametern filtern lassen. Ausserdem braucht es ein Assistentenprogramm, das den IT-Administrator durch die Erstellung eines kundenspezifischen Reports führt. Die Krönung wäre eine auf OLAP (Online Analytics Processing) basierende Cube-Lösung, welche es einem erlaubt, Reports mittels Drag-and-Drop zusammenzustellen. Ein frei konfigurierbares und proaktives Benachrichtigungssystem, das einem bei schwerwiegenden Fehlern in der Software-Verteilung informiert, ist auch sehr hilfreich.
Patch Management gehört dazu
In einer modernen Software- beziehungsweise Client-Management-Lösung ist zwingend auch eine Lösung für das Patch Management dabei, die nicht ausschliesslich Patches von Microsoft installiert. Hervorragend ist es, wenn sich das Ganze in der gleichen Konsole bedienen lässt und nach einem ähnlichen Prinzip wie die Software-Verteilung funktioniert, also die Software Updates beispielsweise im gleichen Software-Katalog untergebracht werden können.
Auch was das Patch Management betrifft, müssen Parameter wie Start eines Rollouts, Benutzerinformationen und Neustart granular definiert werden können. Essentiell ist ebenfalls eine Auswertung auf die sogenannte Compliance mittels Detection Rules, um sicherzustellen, dass ein Update auch installiert wurde. Am wichtigsten und laufend zu aktualisieren sind alle Programme, die mit dem Internet in Berührung kommen. Das heisst Browser (Internet Explorer, Firefox, Chrome oder Safari), aber vor allem auch Java und Adobe Flash oder Skype.
Weniger Arbeit dank Software-Shop
Um ein erfolgreiches Software-Management zu betreiben, sind neben diesen Tools und Features aber auch einige Strukturen und Prozesse unerlässlich. Für die Einführung und Verteilung einer neuen Software müssen beispielsweise diverse Fragen geklärt, die Software- Installation automatisiert und ein Rollout-Plan erstellt werden. Dies gilt ebenso bei einer einfachen Aktualisierung einer Applikation. Spätestens alle sechs Monate sollten die Standardprogramme geprüft und gegebenenfalls aktualisiert werden. Heute reicht es nicht mehr, einen Client oder Server Build für mehrere Jahre zu erstellen.
Um erfolgreich Software zu verwalten, braucht es ausserdem eine möglichst mächtige Workflow-Lösung. Mit dieser können Prozesse zur Software-Verteilung automatisiert und die Auswahl und Bestellung der Applikationen dem Endbenutzer überlassen werden. Dank eines Software-Shops oder -Kiosks kann ein Benutzer sein gewünschtes Programm in einem Web-Formular auswählen und bestellen. Wenn es frei verfügbar ist, wird es sofort ausgerollt. Für kostenpflichtige Applikationen wird automatisch der jeweilige Vorgesetzte, welcher aus einer Datenbank ausgelesen wird, angefragt. Dieser kann in einem weiteren Web-Formular flexibel die angefragte Software bewilligen oder ablehnen.
Nachdem man sein Software-Management perfektioniert hat, lässt sich dies natürlich noch durch weitere Lösungen ergänzen, beispielsweise um eine Application Control Solution. Diese erhöht mittels White- und Blacklisting, dass nur zugelassene Applikationen gestartet werden können. Man kann damit besonders gefährliche Applikationen wie zum Beispiel den Internet Browser durch das Reduzieren der Ausführungsrechte besser absichern. Damit ist die Umgebung auch vor den gefürchteten Zero-Day-Attacken besser geschützt.
Lösungen zu vergleichen, ist schwer, lohnt sich aber
Soweit zu den Anforderungen. Doch welche Lösung ist nun die beste für das eigene Unternehmen? Die vielen heute am Markt erhältlichen Produkte für das Software-Management sind nur schwer und mit grossem Aufwand zu vergleichen, da es massive Unterschiede in der Flexibilität und Reife des jeweiligen Produktes gibt. In der Praxis zeigt sich, dass ein Produkt nach einem Major Release Zeit braucht, damit die neu angepriesenen Funktionen auch wirklich einwandfrei funktionieren. Bei der Auswahl eines Produktes gilt es darum unbedingt darauf zu achten, ob es nur die absolut notwendigen Grundfunktionen beherrscht oder ob es vielfältige Möglichkeiten bietet und diese auch schon während zwei bis drei Minor Releases zur Verfügung stehen. Sehr hilfreich sein kann auch der Magic Quadrant für Client Management Tools von Gartner (siehe Grafik).
Um die Investition zu schützen, ist es ausserdem wesentlich, sich für ein Produkt mit Erweiterungspotential zu entscheiden. Prüfen sollte man beispielsweise, ob es auf der Plattform auch eine Lösung für die Verwaltung von Assets oder Configuration Items, einen Servicedesk sowie absolut zwingend eine Workflow-Lösung gibt. Wenn es oben drauf auch noch eine Lösung zur Verwaltung und zum Monitoring von Servern gibt, sowie auch mobile Endgeräte verwaltet werden können, dann hat man bestimmt die richtige Lösung mit grossem Potential gefunden.
Bei der Auswahl und später dann für eine erfolgreiche Implementierung und Weiterentwicklung einer Software- und Client-Management-Lösung lohnt es sich aber auf jeden Fall, einen erfahrenen Berater, der solche Lösungen schon häufig implementiert hat, beizuziehen. Entscheiden sollte man sich darum nicht nur für das beste Produkt, sondern für die beste Kombination aus Produkt und Consultant.
Reto Wintsch ist Geschäftsführer des auf System Management spezialisierten Zürcher IT-Beraterunternehmens Fyre Consulting.