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
ConfigMgr: TortoiseSVN 1.9.4 verteilen
Hier das minimalistische Script für TortoiseSVN 1.9.4:
<appdefinition> <file>TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi</file> <hash type="SHA256">7CAD40E63FF5400483F853642477AD17C88177A530C053EA307243E17C6192DC</hash> <info> <setupType>MSI</setupType> <isX86>false</isX86> </info> <install/> <uninstall/> <detection/> <dependency/> <supersedence> <deploymentType uninstall="false" type="SHA256">0D3894C8B0E6F116C34408E87C645757E9B568ABCCE3C9FCEA42076FA7A01293</deploymentType><!--TortoiseSVN-1.8.11.26392-x64-svn-1.8.13.msi--> <deploymentType uninstall="false" type="SHA256">5059209B24972D978E80AFCAC1721AAFB560C42C59ED193689EEE23563D23850</deploymentType><!--TortoiseSVN-1.9.3--> </supersedence> </appdefinition>
ConfigMgr: Firefox ESR 45.2.0 verteilen
Firefox ESR gibt es aktuell in der Version 45.2.0. Für das Update (inkl. Supersedence) habe ich unten das passende Script angehängt.
Download unter: https://www.mozilla.org/en-US/firefox/organizations/all/
<appdefinition>
<file>Firefox Setup 45.2.0esr.exe</file>
<hash type="SHA256">CA99927AA526C7C002C137337BFA0A1CB2C9118F8C7568F1F3B5C6DCDBAEEE08</hash>
<info>
<company>Mozilla Corporation</company>
<productName>Mozilla Firefox</productName>
<productversion>45.2.0</productversion>
<setupType>NSIS</setupType>
<isX86>true</isX86>
<hasUninstall>true</hasUninstall>
</info>
<install>
$inf=Join-Path $env:temp firefox.ini
$content="[Install]
QuickLaunchShortcut=false
DesktopShortcut=false
MaintenanceService=false" -replace "`n", "`r`n"
Out-File -FilePath $inf -Force -InputObject $content -Encoding ascii
Show-InstallationProgress -StatusMessage "Installing $appName $appVersion. This may take some time. Please wait..."
Execute-Process -Path "Firefox Setup 45.2.0esr.exe" -Parameters "/INI=`"$inf`"" -WindowStyle Hidden
</install>
<uninstall>
if ([IntPtr]::Size -eq 8) {$regPath="HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"} else { $regPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"}
$item=Get-ItemProperty $regPath | where {$_.DisplayName -like "*Mozilla Firefox*" -and $_.DisplayVersion -eq "45.2.0"}
Execute-Process -Path ($item.UninstallString -replace "`"", "") -Parameters "/S"
</uninstall>
<detection/>
<dependency/>
<supersedence>
<deploymentType uninstall="false" type="SHA256">8CA1EC61B9DF30DDCEF3E7CE5234C2BEF6EC7C9C3A4B51F57C67FC9E8822E7FB</deploymentType><!--38.2.0-->
<deploymentType uninstall="false" type="SHA256">40DC3DF8C548819733386B70791DB753793E98C5F08283001D851A204376F017</deploymentType><!--38.2.1-->
<deploymentType uninstall="false" type="SHA256">FDC5BAA6033918E7FE8018DE130F16A23896B623B0B4F60A8EA578759C2DD29C</deploymentType><!--38.6.0-->
<deploymentType uninstall="false" type="SHA256">771A00786C69F7290A25C495A03622B4616C21D6A062BC712F55E0AE0282C219</deploymentType><!--38.6.1-->
<deploymentType uninstall="false" type="SHA256">85B1438D427FB6C9A52415BF46239AD491FD30EA410698ECDE256D0BC9AE7DB4</deploymentType><!--45.0.0-->
<deploymentType uninstall="false" type="SHA256">4477B833266C0ED9306AFC8347A547C1D27AB854C0438BC353A943C00774CAFD</deploymentType><!--45.0.1-->
</supersedence>
</appdefinition>
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.
ConfigMgr: Firefox ESR 45.0.1 verteilen
Im Rahmen des erweiterten Releasezyklus von Firefox ESR war jetzt wieder ein Versionssprung von 38 auf 45 dran. Dies bedeutet für die Anwender eine angepasste Oberfläche. Für das Upgrade (inkl. Supersedence) habe ich unten das passende Script angehängt.
Download unter: https://www.mozilla.org/en-US/firefox/organizations/all/
<appdefinition>
<file>Firefox Setup 45.0.1esr.exe</file>
<hash type="SHA256">4477B833266C0ED9306AFC8347A547C1D27AB854C0438BC353A943C00774CAFD</hash>
<info>
<company>Mozilla Corporation</company>
<productName>Mozilla Firefox</productName>
<productversion>45.0.1</productversion>
<setupType>NSIS</setupType>
<isX86>true</isX86>
<hasUninstall>true</hasUninstall>
</info>
<install>
$inf=Join-Path $env:temp firefox.ini
$content="[Install]
QuickLaunchShortcut=false
DesktopShortcut=false
MaintenanceService=false" -replace "`n", "`r`n"
Out-File -FilePath $inf -Force -InputObject $content -Encoding ascii
Show-InstallationProgress -StatusMessage "Installing $appName $appVersion. This may take some time. Please wait..."
Execute-Process -Path "Firefox Setup 45.0.1esr.exe" -Parameters "/INI=`"$inf`"" -WindowStyle Hidden
</install>
<uninstall>
if ([IntPtr]::Size -eq 8) {$regPath="HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"} else { $regPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"}
$item=Get-ItemProperty $regPath | where {$_.DisplayName -like "*Mozilla Firefox*" -and $_.DisplayVersion -eq "45.0.1"}
Execute-Process -Path ($item.UninstallString -replace "`"", "") -Parameters "/S"
</uninstall>
<detection/>
<dependency/>
<supersedence>
<deploymentType uninstall="false" type="SHA256">8CA1EC61B9DF30DDCEF3E7CE5234C2BEF6EC7C9C3A4B51F57C67FC9E8822E7FB</deploymentType><!--38.2.0-->
<deploymentType uninstall="false" type="SHA256">40DC3DF8C548819733386B70791DB753793E98C5F08283001D851A204376F017</deploymentType><!--38.2.1-->
<deploymentType uninstall="false" type="SHA256">FDC5BAA6033918E7FE8018DE130F16A23896B623B0B4F60A8EA578759C2DD29C</deploymentType><!--38.6.0-->
<deploymentType uninstall="false" type="SHA256">771A00786C69F7290A25C495A03622B4616C21D6A062BC712F55E0AE0282C219</deploymentType><!--38.6.1-->
<deploymentType uninstall="false" type="SHA256">85B1438D427FB6C9A52415BF46239AD491FD30EA410698ECDE256D0BC9AE7DB4</deploymentType><!--45.0.0-->
</supersedence>
</appdefinition>
System Center Configuration Manager 1602
Seit zwei Tagen (11.03.2016) gibt es die offizielle Version 1602 vom ConfigMgr. Es beinhaltet einige interessante Änderungen, die ich auch in meinem letzten Vortrag angerissen habe.
Achtung: Eine direkte Installation ist nicht vorgesehen, sondern man muss zuerst das letzte Baseline Release (1511) installiert haben und kann dann direkt upgraden (dies kann auch vor dem Clientupgrade erfolgen).
Weitere Details sind hier zu finden:
ConfigMgr: Firefox ESR 38.6.1 verteilen
Ein weiteres Beispiel mit Supersedence wäre die aktuelle Version der Unternehmensvariante von Firefox. Es werden die letzten drei von mir vorbereiteten Versionen in die veraltete Softwareliste aufgenommen.
Download unter: https://www.mozilla.org/en-US/firefox/organizations/all/
<appdefinition>
<file>Firefox Setup 38.6.1esr.exe</file>
<hash type="SHA256">771A00786C69F7290A25C495A03622B4616C21D6A062BC712F55E0AE0282C219</hash>
<info>
<company>Mozilla Corporation</company>
<productName>Mozilla Firefox</productName>
<productversion>38.6.1</productversion>
<setupType>NSIS</setupType>
<isX86>true</isX86>
<hasUninstall>true</hasUninstall>
</info>
<install>
$inf=Join-Path $env:temp firefox.ini
$content="[Install]
QuickLaunchShortcut=false
DesktopShortcut=false
MaintenanceService=false" -replace "`n", "`r`n"
Out-File -FilePath $inf -Force -InputObject $content -Encoding ascii
Show-InstallationProgress -StatusMessage "Installing $appName $appVersion. This may take some time. Please wait..."
Execute-Process -Path "Firefox Setup 38.6.1esr.exe" -Parameters "/INI=`"$inf`"" -WindowStyle Hidden
</install>
<uninstall>
if ([IntPtr]::Size -eq 8) {$regPath="HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"} else { $regPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"}
$item=Get-ItemProperty $regPath | where {$_.DisplayName -like "*Mozilla Firefox*" -and $_.DisplayVersion -eq "38.6.1"}
Execute-Process -Path ($item.UninstallString -replace "`"", "") -Parameters "/S"
</uninstall>
<detection/>
<dependency/>
<supersedence>
<deploymentType uninstall="false" type="SHA256">8CA1EC61B9DF30DDCEF3E7CE5234C2BEF6EC7C9C3A4B51F57C67FC9E8822E7FB</deploymentType><!--38.2.0-->
<deploymentType uninstall="false" type="SHA256">40DC3DF8C548819733386B70791DB753793E98C5F08283001D851A204376F017</deploymentType><!--38.2.1-->
<deploymentType uninstall="false" type="SHA256">FDC5BAA6033918E7FE8018DE130F16A23896B623B0B4F60A8EA578759C2DD29C</deploymentType><!--38.6.0-->
</supersedence>
</appdefinition>
ConfigMgr: TortoiseSVN 1.9.3 verteilen
Nachfolgend ist ein erstes Beispiel, um Supersedence Regeln automatisch erstellen zu können. Voraussetzung ist, dass die Version 1.8.11 ebenfalls mit der neuesten Version von meinem Toolkit angelegt wurde. Dann ist im DeploymentType der Hash Wert hinterlegt, an Hand der das Script die zu ersetzende Anwendung erkennt. Da es sich hierbei um ein ordentliches MSI Paket handelt, ist ein vorhergehendes Uninstall nicht notwendig und daher auf “False” gesetzt.
Das neue MSI File kann unter https://tortoisesvn.net/downloads.de.html heruntergeladen werden.
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.