Changes

ITunes

2,027 bytes added, 22:09, 16 September 2014
Updated GUIDs for 11.4.0.18, added note about GUIDs and offered a solution to looking up GUIDs every time
* Apple is also known to sometimes modify the setup packages of their programs even at minor version changes, so do not blindly assume that a new ITunes installer will work the same way as the old one did!
* There is a 64bit version of ITunes available too. As of version 11 the 64bit installer contains 64bit versions of ITunes itself and Apple Mobile Device Support and 32bit versions of Apple Application Support. The package definitions for the 64bit versions look basically the same as below, just the paths and GUIDs are different.
* Apple usually changes the GUIDs for every new release. This means that you need to perform a test install and check the GUIDs every time you deploy a new version unless you're willing to require that the original MSI be present to perform an uninstallation. One could potentially also write a script to check <code>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products</code> and find the correct uninstall string for whatever version of each package is currently installed.
= Full iTunes 10.4.0.80 installation in VBS =
<?xml version="1.0" encoding="UTF-8"?>
<package id='appleapplicationsupport' name='Apple Application Support' revision='%PKGVER%' reboot='false' priority='10'>
<variable name='PKGVER' value='2.3.0.6' />
<check type='uninstall' condition='versiongreaterorequal' path='Apple Application Support' value='%PKGVER%'/>
<upgrade include='install' />
<remove cmd='msiexec /x{46F044A578002155-CE8Bf025-41964070-984E85b3-5BD6525E361D7c0453561701} /passive /norestart' timeout='300'>
<exit code='0' />
<exit code='1605' />
<package id='applemobilesupport' name='Apple Mobile Device Support' revision='%PKGVER%' reboot='false' priority='10'>
<variable name='PKGVER' value='78.0.0.11723' />
<variable name="PKG_SOURCE" value='%SOFTWARE%\itunes\AppleMobileDeviceSupport.msi' architecture="x86" />
<variable name="PKG_SOURCE" value='%SOFTWARE%\itunes\AppleMobileDeviceSupport64.msi' architecture="x64" />
<variable name="PRODUCT_ID" value='{0592EF96c0cc75cd-69D8f5b7-4E4B46ad-9CC9b016-88F58EA86F0117c0f5171718}' architecture="x86" /> <variable name="PRODUCT_ID" value='{2EF5D87Eb678797f-B7BDdf38-458F4556-84288a31-E4D0B8B4E65C8b818e261868}' architecture="x64" />
<check type='uninstall' condition='versiongreaterorequal' path='Apple Mobile Device Support' value='%PKGVER%' />
<depends package-id='applemobilesupport' />
<variable name='PKGVER' value='11.14.30.818' />
<variable name="PKG_SOURCE" value='%SOFTWARE%\itunes\iTunes.msi' architecture="x86" />
<variable name="PKG_SOURCE" value='%SOFTWARE%\itunes\iTunes64.msi' architecture="x64" />
<variable name="PRODUCT_ID" value='{C197BC08f32dc846-3D824457-465140a8-8886beca-E68C21578A38bcc0e960bc53}' architecture="x86" /> <variable name="PRODUCT_ID" value='{D601CEADf46aa0f1-2E4Fe284-4BBB4878-85CCa462-C29A4CE6A3C05f11b9166c0e}' architecture="x64" />
<check type='uninstall' condition='versiongreaterorequal' path='iTunes' value='%PKGVER%' />
<upgrade include='install' />
<remove cmd='msiexec /x{46F044A578002155-CE8Bf025-41964070-984E85b3-5BD6525E361D7c0453561701} /passive /norestart' timeout='300'>
<exit code='0' />
<exit code='1605' />
<variable name="PKG_SOURCE" value='%SOFTWARE%\itunes\AppleMobileDeviceSupport.msi' architecture="x86" />
<variable name="PKG_SOURCE" value='%SOFTWARE%\itunes\AppleMobileDeviceSupport64.msi' architecture="x64" />
<variable name="PRODUCT_ID" value='{0592EF96c0cc75cd-69D8f5b7-4E4B46ad-9CC9b016-88F58EA86F0117c0f5171718}' architecture="x86" /> <variable name="PRODUCT_ID" value='{2EF5D87Eb678797f-B7BDdf38-458F4556-84288a31-E4D0B8B4E65C8b818e261868}' architecture="x64" />  
<check type='uninstall' condition='versiongreaterorequal' path='Apple Mobile Device Support' value='%PKGVER%' />
<variable name="PKG_SOURCE" value='%SOFTWARE%\itunes\iTunes.msi' architecture="x86" />
<variable name="PKG_SOURCE" value='%SOFTWARE%\itunes\iTunes64.msi' architecture="x64" />
<variable name="PRODUCT_ID" value='{DF9C119Cf32dc846-7F264457-45B940a8-93D4beca-7C372CBBBA11bcc0e960bc53}' architecture="x86" /> <variable name="PRODUCT_ID" value='{F73A118Bf46aa0f1-8271e284-47E24878-8790a462-0C636B2539C55f11b9166c0e}' architecture="x64" />  
<check type='uninstall' condition='versiongreaterorequal' path='iTunes' value='%PKGVER%' />
</package>
</source>
 
= Removing iTunes without GUIDs =
 
To avoid having to check the GUIDs every time you update this package, you can change the removal process to refer to the original MSIs. If you do this and later decide to remove iTunes from your site, you have to keep the installers in %SOFTWARE% until every computer has removed iTunes.
 
To do this, replace the remove stanzas with the following:
 
== Apple Application Support ==
<source lang="xml">
<remove cmd='msiexec /x %SOFTWARE%\itunes\AppleApplicationSupport.msi /passive /norestart' timeout='300'>
<!-- <exit code='any' /> --> <!-- uncomment to just rely on the check conditions -->
<exit code='0' />
<exit code='1605' />
<exit code='3010' reboot='postponed' />
</remove>
</source>
 
== Apple Mobile Device Support ==
<source lang="xml">
<remove cmd='msiexec /x "%PKG_SOURCE%" /passive /norestart' timeout='300'>
<!-- <exit code='any' /> --> <!-- uncomment to just rely on the check conditions -->
<exit code='0' />
<exit code='1605' />
<exit code='3010' reboot='postponed' />
</remove>
</source>
 
== iTunes ==
<source lang="xml">
<remove cmd='msiexec.exe /x "%PKG_SOURCE%" /passive /norestart' timeout='300'>
<!-- <exit code='any' /> --> <!-- uncomment to just rely on the check conditions -->
<exit code='0' />
<exit code='1605' />
<!-- <exit code='3010' reboot='postponed' /> -->
</remove>
</source>
[[Category:Silent Installers]]
Anonymous user