ConfigMgr: Automatisierte Softwarepaketierung und -bereitstellung v0.3
Anbei eine deutlich fehlerbereinigte und verbesserte Version der Automatic App Deployment Scripte.
Changelog:
0.1 – 2015-01-08
- erstes Alpharelease
0.2 – 2015-01-12
- Verbesserung der Ersetzungsfunktion im PS AppDeploy Handling
0.3 – 2015-01-25
-
interne Neustrukturierung
-
Parameterübergabe per Objekt
-
Doppelte Funktionen zusammengeführt
-
Besseres Handling von Paketen in x86 und x64 Format
-
Testgruppe kann angegeben werden, die zu der neuen Collection hinzugefügt wird (Include Collection)
-
Beide Module zu einem zusammengeführt
-
XML Format angepasst (Redundanzen entfernt)
ConfigMgr: Automatisierte Softwarepaketierung und -bereitstellung v0.2
Anbei eine leicht verbesserte Version der Automatic App Deployment Scripte. Folgendes habe ich geändert:
-
ReplaceLine Funktion ausgetauscht, da die RegEx Replace Variante “$_” selber auswertet und ich keine Möglichkeit gefunden habe, dies abzuschalten
-
Verbesserung der 32/64bit Erkennung bei NSIS Installern.
ConfigMgr: IrfanView 4.38 bereitstellen
Auch wenn man viele Aufrufe automatisieren kann, so gibt es trotzdem Softwareinstallationen, die speziell angepasst werden müssen. Auch dies ist durch meine Powershellscripte abbildbar. Als ein Beispiel führe ich hier die Installation von Irfanview 4.38 (http://www.irfanview.com/main_download_engl.htm) auf.
Die Header in der EXE sind korrekt gefüllt, daher brauchen wir in der Info Sektion keine weiteren Angaben machen. Als Setuptype ist als Dummy InnoSetup hinterlegt. Die Angabe ist irrelevant, da wir alle drei Bereiche überschreiben:
ConfigMgr: Applikationserstellung mit Powershell
Möchte man per Powershell neue Applikationen im ConfigMgr erstellen, so ist dies mittels New-C;Mpplication und Add-CMDeploymentType relativ einfach machbar. Der passende TechNet Artikel (http://technet.microsoft.com/en-us/library/jj870953%28v=sc.20%29.aspx) listet alle verfügbaren Parameter auf. Microsoft hat leider versucht, mit einem Powershell Kommando alle möglichen Deployment Types abzudecken. Gerade im Bereich Scripted Installed (Manual Deployment Type) ist korrekte Zusammenstellung schwierig.
Nachfolgend wird daher ein Beispiel für eine Verteilung einer Anwendung (in diesem Fall aus dem Powershell App Deployment Toolkit), die im Hintergrund ein MSI File installiert. Die Anwendungserkennung soll auf Basis des MSI Produktcodes und der entsprechenden Version erfolgen. Es ist nach meinen Recherchen nicht möglich, per Powershell die eingebauten Detection-Methoden (MSI, File, Directory oder Registry-Werte) zu verwenden. Daher muss diese Funktion mittels einer Powershell Zeile nachgebaut werden.
Zuerst wird eine neue Application erstellt:
ConfigMgr: Powershell Script
Generell baue ich eine Configuration Manager Umgebung so auf, dass ich pro zu verteilender Software eine eigene Collection einrichte. Diese wird unterhalb eines Ordner _Software und darunter in einem Ordner mit dem Namen des Herstellers abgelegt. In diese Device Collection kommen dann die Clients, die die Software erhalten sollen.
So erhält man die maximale Flexibilität, auch wenn man am Anfang wahrscheinlich das meiste an die gleiche Gruppe von Clients verteilt.
Um diesen Ablauf zu vereinfachen, habe ich ein kleines Powershell Script geschrieben, dass die Ordner und die Collection entsprechend anlegt.
Der Aufruf erfolgt mittels:
ConfigMgr: Paketierung mit System Center Configuration Manager – Teil 4
Wie in unserem Vierteiler Eingangs erwähnt, hat der System Center Configuration Manager (ConfigMgr) keine eigene Scriptsprache. Als Ersatz dafür bietet sich Powershell an.
- Artikel: Einleitung und Möglichkeiten der Paketierung
- Artikel: Quellen für Silent Setup Parameter
- Artikel: Erstellen von MSI Paketen
- Artikel: Verteilung mit Powershell?
Speziell das PowerShell App Deployment Toolkit (hier: PADT) bietet sich hier als idealen Wrapper an.
Anhand der Verteilung von Flash wird in diesem Artikel das Toolkit vorgestellt.
Flash 14 kann als MSI heruntergeladen werden. Bei der Installation im Rahmen einer zentralen Verteilung sollte die automatische Updatefunktion abgeschaltet werden. Dies kann durch die Anpassung der mms.cfg erfolgen. Ebenso sollte beim ActiveX Installer (nicht mehr notwendig für Windows 8 und höher) und beim Plugin für Firefox der jeweilige Browser geschlossen sein.
D.h. für unser Script werden folgende Punkte eingestellt:
Hyper-V 3.0: Kleines Script zum Aufräumen
Je nachdem wie gründlich man seinen Hyper-V Server pflegt, kann es passieren, dass im Cluster Shared Volume (CSV) ein paar Leichen übrig bleiben, da beim Löschen einer Virtuellen Maschine (VM) nicht automatisch die zugehörigen Disks (VHD) gelöscht werden.
Daher habe ich für meine Demo-Umgebung ein kleines Powershell Script geschrieben, dass alle an im Cluster registrierten VMs angehängte Disks auflistet und diese mit den im Dateisystem vorhandenen VHD Dateien abgleicht. Das Ergebnis kann dann genutzt werden, um eventuelle Leichen zu entdecken.
Hyper-V 3.0: Measure und NetworkACL
Nachdem im letzten Artikel eine riesige Auswahl von Neuerungen in Windows 2012 vorgestellt wurden, soll dieser Artikel auf zwei Spezialitäten eingehen, die momentan nur mit PowerShell zu aktivieren sind:
- Network ACLs: pro Virtuellen Maschine (VM) auf Netzwerkebene definieren, auf welche Zielsysteme die VM zugreifen kann. Diese “Firewall”-Funktion wird direkt durch Hyper-V durchgeführt und ist vom in der VM eingesetzten Betriebssystem unabhängig
- Metering von VMs: Mitprotokollieren von Verbrauchswerten einer VM
Network ACL
SCSM: Mass deleting incidents
Sometimes if you are testing the import of a bunch of incidents, it is necessary to delete them.
As usual you can do it with a one-line powershell:
This command deletes all incidents that are created from yesterday to now:
(Get-SCSMClass -Name "System.WorkItem.Incident" | Get-SCSMClassInstance)
| where {$_.FirstAssignedDate -gt ((get-Date).addDays(-1))} | Remove-SCSMClassInstance
In SCSM you first have to retrieve the class you are interessted in. After that you search for all instances of this class. The last command Remove-SCSMInstance deletes all matching instances.
MDOP: UE-V–Teil 3 – Verwendung von UE-V in WHS
Da ich zu hause einen Windows Home Server (WHS) mit mehreren Clients aber ohne zentrale Profile (da keine Windows Domäne vorhanden ist) einsetze, ist User Environment Virtualization (UE-V) die optimale Ergänzung.
Dazu bin ich folgendermaßen vorgegangen:
Über das Dashboard habe ich ein neue Freigabe namens Settings angelegt. Um mir die Berechtigungsvergabe zu vereinfachen habe ich für alle relevanten Benutzer Read/Write Berechtigungen vergeben.
In einem Unterordner namens Agent liegt darin der Agent mit einem Installationsscript. Parallel zu diesem Ordner existiert ein Ordner Templates, in dem ich die selbsterstellten Vorlagen abgelegt habe.