ConfigMgr: JRE 8u71 verteilen
Update 20160130: Im Script fehlte ein kleiner Teil, daher war die Verteilung nicht in jedem Fall erfolgreich. Dies ist jetzt angepasst.
Nachdem ich im letzten Post die Verteilung von 8u66 beschrieben habe, schiebe ich direkt die Verteilung vom aktuellen 8u71 hinterher. Wie gewünscht ist es hauptsächlich das Austauschen der EXE und Anpassen der Filenamen bzw. GUIDs und Versionsnummern.
<appdefinition>
<file>jre-8u71-windows-i586.exe</file>
<hash type="SHA256">3CC0BE2A34F0989692C30F2CACB89CACFCA7159570D5FC8C1B1498C60CBC07FB</hash>
<info>
<setupType>InnoSetup</setupType>
<isX86>true</isX86>
<company>Oracle Corporation</company>
<productName>Java 8 Update 71</productName>
<msiProductCode>{26A24AE4-039D-4CA4-87B4-2F83218071F0}</msiProductCode>
</info>
<install>
Show-InstallationProgress -StatusMessage 'Installing Java JRE. This may take some time. Please wait...'
$path=join-path (join-path $env:programdata 'Oracle') 'Java'
if ((Test-Path $path) -eq $false) {
New-Item -Type Directory $path |out-null
}
new-item -type File (join-path $path 'java.settings.cfg') -force | out-null
if ($is64Bit) {
$path=join-path $envWinDir "System32\config\systemprofile\AppData\LocalLow\Oracle"
$symName=join-path $envWinDir "SysWOW64\config\systemprofile\AppData\LocalLow\Oracle"
if (Test-Path $symname) {
remove-Item -Recurse -Path $symName
}
if (-not (Test-Path $path)) {
new-item -ItemType Directory -Path $path
}
#Quelle: https://gallery.technet.microsoft.com/scriptcenter/New-SymLink-60d2531e
Try {
$null = [mklink.symlink]
} Catch {
Add-Type @"
using System;
using System.Runtime.InteropServices;
namespace mklink
{
public class symlink
{
[DllImport("kernel32.dll")]
public static extern bool CreateSymbolicLink(string lpSymlinkFileName, string lpTargetFileName, int dwFlags);
}
}
"@
}
Try {
$return = [mklink.symlink]::CreateSymbolicLink($SymName,$Path,1)
} Catch {
}
}
Execute-Process -Path "jre-8u71-windows-i586.exe" -Parameters "/s INSTALL_SILENT=Enable AUTO_UPDATE=Disable WEB_JAVA=Disable WEB_ANALYTICS=Disable REBOOT=Disable NOSTARTMENU=Enable SPONSORS=Disable" -WindowStyle Hidden
</install>
<uninstall>
Execute-MSI -Action Uninstall -Path "{26A24AE4-039D-4CA4-87B4-2F83218071F0}"
</uninstall>
<detection>
if ([IntPtr]::Size -eq 8) {$regPath="HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"} else { $regPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"}
Get-ItemProperty $regPath | where {$_.psChildname -like "{26A24AE4-039D-4CA4-87B4-2F83218071F0}" -and $_.DisplayVersion -eq "8.0.710.15" -and $_.WindowsInstaller -eq 1}
</detection>
</appdefinition>
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.
ConfigMgr: 7-zip 15.07 beta verteilen
Seit ca. 14 Tagen gibt es eine neue Beta vom beliebten 7-zip Packer.
Hier das passende XML File inkl. aktualisiertem Hash-Wert:
<appdefinition>
<file>7z1507-x64.exe</file>
<hash type="SHA256">E20B323C9FDD4C487B244309A3B8DD256B2ED0FDD13F55E1FEEC0B39B655D7FA</hash>
<info>
<company>Igor Pavlov</company>
<setupType>NSIS</setupType>
<isX86>false</isX86>
<hasUninstall>true</hasUninstall>
</info>
<install/>
<uninstall>
Show-InstallationProgress -StatusMessage "Uninstalling 7-Zip 15.07 beta. This may take some time. Please wait..."
$regPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
$uninstallApp=(Get-ItemProperty $regPath | where {$_.DisplayName -like "*7-Zip 15.07 beta*"}).UninstallString.replace("`"","")
Execute-Process -Path "$uninstallApp" -Parameters "/S" -WindowStyle Hidden
</uninstall>
<detection>
$regPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
Get-ItemProperty $regPath | where {$_.DisplayName -like "*7-Zip 15.07 beta*"}
</detection>
</appdefinition>
ConfigMgr: Firefox 38.3.0 ESR bereitstellen
Hier wurde schon lange keine Verteilung von Firefox vorgestellt. Mittlerweile empfehle ich für Firmen den ESR Zweig. Dabei wird eine Version eine bestimmte Zeit eingefroren und nur noch Sicherheitsupdates eingefügt. Ähnlich wie bei Windows 7 bei dem auch nich ständig die Oberfläöche ausgetauscht wird.
Die aktuelle Version 38.3.0 kann mit folgendem appdefinition.xml bereitgestellt werden:
<appdefinition>
<file>Firefox Setup 38.3.0esr.exe</file>
<hash type="SHA256">82B91F1F7326F356A7411E0646182B5D901E4C2FB3165C957CA0AD52FB46D98F</hash>
<info>
<company>Mozilla Corporation</company>
<productName>Mozilla Firefox</productName>
<productversion>38.3.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 38.3.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 "38.3.0"}
Execute-Process -Path ($item.UninstallString -replace "`"", "") -Parameters "/S"
</uninstall>
<detection/>
</appdefinition>
Die Installation erfolgt über ein dynamisch erstelltes INI-File, dass einige Icons und den Maintenance Dienst deaktiviert.
ConfigMgr: MDT 2013 Update 1
Eine kurze Information: Seit gestern gibt es das Microsoft Deployment Toolkit (MDT) 2013 Update 1, das jetzt offiziell das ADK für Windows 10 unterstützt. Das ermöglicht jetzt die Verteilung und das Upgrade von Windows 10 mit einer Release Version von MDT.
Weitere Informationen sind in diesem Blog Artikel zu finden:
http://blogs.technet.com/b/msdeployment/archive/2015/08/17/mdt-2013-update-1-now-available.aspx
ConfigMgr: Adobe Reader 2015 Classic bereitstellen
Die 2015er Version von Adobe Reader ist ist aufgeteilt in eine continuous und classic Variante. Die continuous Version ist eher für weniger zentral strukturierte Umgebungen vorgesehen, da sie ähnlich wie Cloud Software ständig aktualisiert. Die classic Variante wird wie gehabt weiterhin Quartalsweise aktualisiert.
Eine kurze Gegenüberstellung ist hier zu finden:
http://www.adobe.com/devnet-docs/acrobatetk/tools/AdminGuide/whatsnewdc.html#continuous-vs-classic-comparison
In dieser Beschreibung werde ich auf die classic Variante eingehen. Sie ist über die Adobe Webseite herunterladbar. Dazu lädt man zuerst die Basis Version unter ftp://ftp.adobe.com/pub/adobe/reader/win/Acrobat2015/1500630033/ herunter. Diese kann man mit der Kommandozeile
ConfigMgr: VLC 2.2.1 bereitstellen
VLC Media Player ist aktuell in der Version 2.2.1 verfügbar. Die angepasste appdeployment.xml, die zusätzlich das Icon auf dem Desktop entfernt ist nachfolgend aufgeführt:
<appdefinition>
<file>vlc-2.2.1-win32.exe</file>
<hash type="SHA256">2EAA3881B01A2464D2A155AD49CC78162571DECECCEF555400666C719A60794D</hash>
<info>
<company>VideoLAN</company>
<productName>VLC media player</productName>
<productVersion>2.2.1</productVersion>
<setupType>NSIS</setupType>
<isX86>true</isX86>
<hasUninstall>true</hasUninstall>
</info>
<install>
Show-InstallationProgress -StatusMessage "Installing $appName $appVersion. This may take some time. Please wait..."
Execute-Process -Path "vlc-2.2.1-win32.exe" -Parameters "/S" -WindowStyle Hidden
$icon=join-path (join-path $env:public "Desktop") "VLC media player.lnk"
if (test-path $icon) {
Show-InstallationProgress -StatusMessage "Removing desktop icon."
remove-item -path $icon -force
}
</install>
<uninstall/>
<detection/>
</appdefinition>
ConfigMgr: 7-zip 15.05 Beta verteilen
Mit 7-Zip 15.05 Beta wurde ein neuer Installer verwendet, der ähnlich wie NSIS den /S Parameter akzeptiert, aber andere Einträge in der Registry erzeugt. Daher wurde die appdeployment.xml entsprechend angepasst.
Heruntergeladen kann die Version direkt unter http://www.7-zip.org/download.html
<appdefinition>
<file>7z1505-x64.exe</file>
<hash type="SHA256">6ABAF04E44C87BD109DF7485EB67A2D69A2E3E6E6DEB9DF59E5E707176C69449</hash>
<info>
<company>Igor Pavlov</company>
<setupType>NSIS</setupType>
<isX86>false</isX86>
<hasUninstall>true</hasUninstall>
</info>
<install/>
<uninstall>
Show-InstallationProgress -StatusMessage "Uninstalling 7-Zip 15.05 beta. This may take some time. Please wait..."
$regPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
$uninstallApp=(Get-ItemProperty $regPath | where {$_.DisplayName -like "*7-Zip 15.05 beta*"}).UninstallString.replace("`"","")
Execute-Process -Path "$uninstallApp" -Parameters "/S" -WindowStyle Hidden
</uninstall>
<detection>
$regPath="HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*"
Get-ItemProperty $regPath | where {$_.DisplayName -like "*7-Zip 15.05 beta*"}
</detection>
</appdefinition>
ConfigMgr: Softwarepaketierung Übersicht
| Adobe Systems Incorporated | ||||
| Adobe Reader 2015 | ||||
| Artifex Software, Inc. | ||||
| GhostScript 32bit | ||||
| GhostScript 64bit | ||||
| Igor Pavlov | ||||
| 7-zip | ||||
| irfan skiljan | ||||
| IrfanView | ||||
| Microsoft | ||||
| .Net Framework 3 | ||||
| .Net Framework 4 | ||||
| Report Viewer | ||||
| System Center Operations Manager Console | ||||
| Mozilla | ||||
| Firefox 38 ESR | ||||
| Firefox 45 ESR | ||||
| Oracle | ||||
| Java JRE 7 | ||||
| Java JRE 8 | ||||
| pdfforge GbR | ||||
| PDFCreator | ||||
| The TortoiseSVN team | ||||
| TortoiseSVN | ||||
| VideoLan | ||||
| VLC Player | ||||
| X.KEY GmbH | ||||
| eDocPrint Pro | ||||