Hi,

I'am triying to install the last version of quick time 7.75.80.95; i installed the msi and i've done all modifications, after that i copied the file Quick Time.qtp in the msi but the file is not correctly copied, but when i copied the file. qtp manually in the LocalLow it works fine.
My questions are: there is any one who have a correct method to deploy this application? where we have to put exactelly the file QTP in installshield? there are others configurations to desactivate the updates? How to install it for all users?

Please Help me to found the correct method.
Thanks for all.
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Answers

1
There are different ways to do this. The method I favour is to create a user feature and make it the parent of all other features. You then add entries to the file/component/featureComponent/msifilehash/directory tables to install the configuration files from the source location during self healing, and you add a HKCU registry entry to trigger self healing, all in the user folder. I normally do this via ORCA
The obvious alternative is to deploy the configuration files to a custom folder added to the main program install location, and use active setup to install for each user.
There is no solution for ALL USERS.
Answered 07/29/2014 by: EdT
Red Belt

  • Thanks for your answer, i'm looking for more details
Please log in to comment
1
Any more answers please!

To create the MST, i  copied the file 'quick time.qtp' in USERPROFILE\Appdata\LocalLow\Apple Computer\QuickTime ,but when i deploy the application, it is installed in c:\APPdata\LocalLow\Apple Computer\QuickTime.
where i've to put the QTP file in installshild to have it in c:\users\%username%\appdata\locallow\apple computer\quicktime ??

HELP!
LocalLow\Apple Computer\QuickTime
LocalLow\Apple Computer\QuickTime
Answered 07/31/2014 by: Asker
Second Degree Green Belt

  • Let me have your email and I will send you a word document with all the necessary information
    • This is my adress mail: askera230@gmail.com
      Thank you
      • You have mail
    • Hi EdT, QuickTime is driving me bonkers. Could you send me the email also please? ChinoZ32 @ gmail dot com. Thank you!
    • I'm sure it would be helpful to everyone coming to this site looking for how to silent install Quicktime the best way. Do you mind posting this word doc as a blog post or paste it directly to this post? Thanks.
Please log in to comment
0

 

 

 

 

 

 

 

 

 

 

 

 

 

QuickTime Player 7.7.4

 

 

 

1      Application / Package Information

 

Name

QuickTime Player

Version

7.74.80.86

Vendor

Apple Inc.

Product Key(s)

N/A

License Type

Freely downloadable from Apple with distribution agreement in place.

Vendor’s Installation

Multiple msi files in self extracting EXE.

WPS Project Process

(ICTST) Vendor’s MSI based package

Package Type

2 of vendors msi + transform on main QuickTime msi, called by GInstaller.

Product Code(s)

AppleApplicationSupport.msi:  {5D09C772-ECB3-442B-9CC6-B4341C78FDC2}

QuickTime.msi:                        {B67BAFBA-4C9F-48FA-9496-933E3B255044}

 

Help Desk Incident #

#86614

GInstaller.vbs version

2.9

Package / Installation Outline Notes

Requires installation of AppleApplicationSupport.msi and QuickTime.msi.

 

QuickTime774.mst configured to deliver the following customisations:

-       Custom QuickTime.qtp to uncheck as default: auto updates, show icon in system tray, notification of file type association changes.

-       Custom QTPlayerSession.xml to not display HotPicks at start-up.

-       Active Setup keys and UserSettingsCopy.vbs to ensure custom settings apply to all logging on users.

-       Remove all shortcuts except main program shortcut, and place it under Start / Programs / Accessories.

 

CopyPrefsToLoggedonUsersProfiles.vbs created to copy config files directly into the profile of any logged in accounts (also writes reg keys to prevent Active setup re-run).

 

Quicktime sample files for testing purposes: http://support.apple.com/kb/HT1425

 

2      Integration

2.1    Method

 

Tool(s)

Notepad, ORCA, Wise Package Studio

 

Shortcuts

Removed via QuickTime774.mst:

     Start / Programs / QuickTime / PictureViewer

     Start / Programs / QuickTime / Uninstall QuickTime

     Start / Programs / QuickTime / About QuickTime

     Start / Programs / QuickTime <folder>

     Desktop / QuickTime Player

 

Moved from:   Start / Programs / QuickTime / QuickTime Player

to:                   Start / Programs / Accessories / QuickTime Player

 

Registry Keys

Active Setup registry values applied via QuickTime774.mst:

 

[HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\QuickTime User]

@=”[IT Services] QuickTime 7.7.4 User Settings”

“Locale”=”EN”

“StubPath”=”WScript.exe //B \"[INSTALLDIR]_ICTST_Custom\UserSettingsCopy.vbs\"”

“Version”=”7,74,80,86”

 

 

Files

Vendor’s, plus custom files below (copied to [INSTALLDIR]\_ICTST_Custom):

 

QTPlayerSession.xml

QuickTime.qtp

UserSettingsCopy.vbs

 

 

 

Custom ini, xml, Config Files

 

NOTE: The AppleApplicationSupport.msi can return 1603 if a newer version is installed. This can happen if a user has installed the latest version of iTunes. For this reason, 1603 is entered as a successful return code in the GInstaller.ini.

 

Method

 

Vendor compressed .exe downloaded from http://www.apple.com/uk/quicktime/download/. QuickTime.msi and AppleApplicationSupport.msi extracted using 7zip. 

 

QuickTime774.mst created with the following customisations:

 

New Feature: ICTST_Custom made parent of QuickTimeEssentials

 

Components: ICTST_ActiveSetup and ICTST_UserPrefs

 

Custom Action:  ICTST_CustomUserPrefs – Condition: NOT REMOVE=”ALL”  – placed just before InstallFinalize in deferred sequence.  This action runs the script to copy into place the custom config files for the installing user.

 

QuickTime shortcut moved under Accessories so that it does not clog up the Start / Programs menu as very few people actually start QuickTime from the program icon.

 

The above is saved then the package installed using the new MST and configuration files from the previous package to capture the updated user files below:

 

Generation of custom config files QuickTime.qtp and QTPlayerSession.xml:

 

  • Run QuickTime Player:

-       Edit / Preferences / Player Preferences:

General Tab:  Untick 'Show Content Guide at startup' and click OK.

-       Edit / Preferences / QuickTime Preferences:

Update tab:  Untick ‘Check for updates automatically’.

File Types tab:  Untick 'Notify me if other applications modify these associations'.

Advanced tab:  Untick ‘Install QuickTime icon in system tray’ and click OK.

 

  • Close QuickTime Player and harvest the two files. 

 

  • Add files to "[INSTALLDIR]\_ICTST_Custom" folder using WPS.

 

 

  • The MST is updated with the file sizes and MSIFileHash values of the harvested files, and the added component GUIDs are changed to ensure the components get installed during an upgrade.

 

 

Active Setup runs UserSettingsCopy.vbs to copy in the custom config files above to keep login fast – previous packages that performed an MSI repair at logon via Active Setup took over 30 seconds to complete. Now it is less than one second. 

 

The script CopyPrefsToLoggedOnUsersProfiles.vbs is included to further avoid unnecessary Active Setup operations by copying the configuration files to the profile(s) of any logged on user(s). It detects which OS Architecture is in use and copies the config files to the relevant locations under the users profile.

 

 

2.2    Deployment

 

 

 

 

2.2.1    Command Line(s)

 

 

 

Uninstall

QuickTime:

Msiexec /x {B67BAFBA-4C9F-48FA-9496-933E3B255044}

 

Apple Application Support (Note this is also required by iTunes):

Msiexec /x {5D09C772-ECB3-442B-9CC6-B4341C78FDC2}

 

 

 

 

 

 

 

 


 

APPENDIXIV - CopyPrefsToLoggedOnUsersProfiles.vbs

 

'# EdT 18/06/2012 based on iTunes scriptby D.Collins - 13:24 14/10/2011

'# EdT updated 05/03/2013 for 64 bitsupport

'# Copies 2 x Quicktime config files intologged on users profiles

'# PhilW updated 24/05/2013 for Quicktime7.74.80.86

'# D.Collins - 17:08 29/05/2013 -QuickTime-specific x64 fixes

 

 

Option Explicit

 

'________________________________________________________________________________

'    Setup Error Handler

'¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

'# Error Exception Handler.

Class QuitErrorlevelOnRuntimeError

   Private Sub Class_Terminate()

       '# If Err.Number = 0 Then wscript.quit will return -2147155971.

       '# If the script just ends with no WScript.Quit, Err.Number will = 0

       If Err.Number <> -2147155971 And Err.Number <> 0 Then

            Set wshShell =CreateObject("WScript.Shell")

            wshShell.LogEvent 1, "FATAL ERROR- Fatal error in '" & WScript.ScriptFullName & "'process.  Error " & Err.Number& " - " & Err.Source & " - " &Err.Description

            WScript.Quit Err.Number

       End If

  End Sub

End Class

Dim wshShell, qeloreObj : Set qeloreObj =New QuitErrorlevelOnRuntimeError

 

'________________________________________________________________________________

'   Main Script

'¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

 

Const HKEY_CLASSES_ROOT   = &H80000000

Const HKEY_CURRENT_USER   = &H80000001

Const HKEY_LOCAL_MACHINE  = &H80000002

Const HKEY_USERS          = &H80000003

Const HKEY_CURRENT_CONFIG =&H80000005

 

Dim fso, strLog, objReg, strKeyPath,arrSubKeys, arrSIDList, strSIDList, strSID, strPath, strPathList, arrPathList,arrKeys, strKey

Dim strSourcePath, strPath1, strPath2,bits

 

Set wshShell =CreateObject("WScript.Shell")

Set fso =CreateObject("Scripting.FileSystemObject")

bits = CSI_GetBitness("OS")

strLog =wshShell.ExpandEnvironmentStrings("%LOG_FILE%")

 

If bits = 999 Then

   WLog Now() & " - ERROR: CSI_GetBitness function in script'" & WScript.ScriptName & "' returned 999 - prefs notcopied"

   WScript.Quit 114015

End If

 

Set objReg =GetObject("winmgmts:{impersonationLevel = impersonate}!\\.\root\default:StdRegProv")

 

 

objReg.EnumKey HKEY_USERS, "",arrSubKeys

 

If IsNull(arrSubKeys) Then

   '# Nothing found under HKU

   WLog Now() & " - ERROR: No Reg Keys found under HKU"

   WScript.Quit 114001

End If

 

strSIDList = ""

For Each strKey In arrSubKeys

   If Left(strKey, 8) = "S-1-5-21" And Right(strKey, 8) <>"_Classes" Then

       strSIDList = strSIDList & strKey & "|"

   End If

Next

 

'# MsgBox strSIDList

 

If strSIDList = "" Then

   '# No logged on profiles found

   WLog Now() & " - No Logged on user profiles found."

   WScript.Quit 0

End If

 

strKeyPath ="SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"

objReg.EnumKey HKEY_LOCAL_MACHINE,strKeyPath, arrSubKeys

 

If IsNull(arrSubKeys) Then

   '# Nothing found under HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList

   WLog Now() & " - ERROR: No Reg Keys found underHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"

   WScript.Quit 114001

End If

 

arrSIDList = Split(strSIDList,"|")

strPathList = ""

For Each strKey In arrSubKeys

   For Each strSID In arrSIDList

       If strKey <> "" And strKey = strSID Then

            '# Msgbox "Match found -looking in: " & strKeyPath & "\" & strKey

            '# Found a SID match, now collectthe profile path

            objReg.GetExpandedStringValueHKEY_LOCAL_MACHINE, strKeyPath & "\" & strKey,"ProfileImagePath", strPath

            strPathList = strPathList &strPath & "|"

       End If

   Next

Next

 

If strPathList = "" Then

   '# No logged on profiles found

   WLog Now() & " - No Logged on user profile paths found,although logged on user SID's *were* found."

   WScript.Quit 0

End If

 

'# MsgBox strPathList

If bits=32 then strSourcePath =wshShell.ExpandEnvironmentStrings("%ProgramFiles%\QuickTime\_ICTST_Custom\")

If bits=64 then strSourcePath =wshShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%\QuickTime\_ICTST_Custom\")

If Not fso.FolderExists(strSourcePath)Then

   WLog Now() & " - ERROR: QuickTimePrefs.xml source path notfound:  " & strSourcePath

   WScript.Quit 114019

End If

 

arrPathList = Split(strPathList,"|")

For Each strPath In arrPathList

   If strPath = "" Then Exit For

   If bits = 32 Then

       strPath1 = strPath & "\Application Data\AppleComputer\QuickTime"

       strPath2 = strPath & "\Local Settings\Application Data\AppleComputer\QuickTime"

   Else

       strPath1 = strPath & "\AppData\Local\AppleComputer\QuickTime"

       strPath2 = strPath & "\AppData\LocalLow\AppleComputer\QuickTime"

   End If

   On Error Resume Next

 

   MakeDir(strPath1)

   MakeDir(strPath2)

 

   On Error Goto 0

 

   WLog Now() & " - Executing Copy of QuickTime prefs FROM:'" & strSourcePath & "QTPlayerSession.xml' TO: '" &strPath1 & "\QTPlayerSession.xml'"

   fso.CopyFile strSourcePath & "QTPlayerSession.xml",strPath1 & "\QTPlayerSession.xml"

   WLog Now() & " - Executing Copy of QuickTime prefs FROM:'" & strSourcePath & "QuickTime.qtp' TO: '" &strPath2 & "\QuickTime.qtp'"

   fso.CopyFile strSourcePath & "QuickTime.qtp", strPath2& "\QuickTime.qtp"

Next

 

'# Now write reg value to prevent ActiveSetup rerunning the Copy for the logged on users.

 

For Each strSID In arrSIDList

   If strSID = "" Then Exit For

       Ifbits=32 then

   objReg.CreateKey HKEY_USERS, strSID &"\Software\Microsoft\Active Setup\Installed Components\QuickTimeUser"

   objReg.SetStringValue HKEY_USERS, strSID &"\Software\Microsoft\Active Setup\Installed Components\QuickTimeUser", "Locale", "EN"

   objReg.SetStringValue HKEY_USERS, strSID &"\Software\Microsoft\Active Setup\Installed Components\QuickTimeUser", "Version", "7,74,80,86"

       ElseIfbits=64 then

       objReg.CreateKeyHKEY_USERS, strSID & "\Software\Wow6432Node\Microsoft\ActiveSetup\Installed Components\QuickTime User"

   objReg.SetStringValue HKEY_USERS, strSID & "\Software\Wow6432Node\Microsoft\ActiveSetup\Installed Components\QuickTime User", "Locale","EN"

   objReg.SetStringValue HKEY_USERS, strSID &"\Software\Wow6432Node\Microsoft\Active Setup\InstalledComponents\QuickTime User", "Version", "7,74,80,86"

   End If

Next

 

'________________________________________________________________________________

'   Subs & Functions

'¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Sub WLog(sTxt)

   Dim ts, sErrTxt

   On Error Resume Next

    Set ts = fso.OpenTextFile(strLog, 8, True)

   ts.WriteLine sTxt

   ts.Close

   If Err.Number Then

       If Not fso.FileExists(strLog) Then

            sErrTxt = WScript.ScriptName &" - ERROR: Unable to write to log file '" & strLog & "'- Error " & Err.Number & " - " & Err.Description& vbCrlf & vbCrlf & "Log Entry: " & sTxt

            wshShell.LogEvent 1, sErrTxt

            WScript.Quit 114031

       End If

       WScript.Sleep 100

       Wlog(sTxt)

   End If

   On Error Goto 0

   Set ts = Nothing

End Sub

 

Function CSI_GetBitness(Target)

'CSI_GetBitness Function - updates athttp://csi-windows.com.

' All bitness checks in one function

 

 Select Case Ucase(Target)

   

   Case "OS", "WINDOWS", "OPERATING SYSTEM"

     CSI_GetBitness = GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth

   

   Case "HW", "HARDWARE"

     CSI_GetBitness =GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").DataWidth

   

   Case "PROCESS", "PROC"

     'One liner to retrieve process architecture string which will reveal ifrunning in 32bit subsystem

     ProcessArch =CreateObject("WScript.Shell").Environment("Process")("PROCESSOR_ARCHITECTURE")

     If lcase(ProcessArch) = "x86" Then

       CSI_GetBitness = 32

     Else

       Ifinstr(1,"AMD64,IA64",ProcessArch,1) > 0 Then

         CSI_GetBitness = 64

       Else

         CSI_GetBitness = 0 'unknown processor architecture

       End If

     End If

    Case Else

      CSI_GetBitness = 999 'unknown Target item (OS, Hardware, Process)

 End Select

 

End Function

 

Sub MakeDir(dir)

   Dim sTxt

   If Not fso.FolderExists(dir) Then

       wshShell.Run "cmd /c MD """ & dir &"""", 0, True

   End If

   If Not fso.FolderExists(dir) Then

       sTxt = "ERROR: unable to create directory: " & dir

       WLog Now() & " - " & sTxt

   End If

End Sub


APPENDIX V – UserSettingsCopy.vbs

 

 

 

'#EdT 18/06/2012 based on script by D.Collins - 17:11 19/07/2010

'#D.Collins - 16:36 29/05/2013 - Amended to make x64 compliant.

'#Copies to the user profile: QuickTime.qtp and QTPlayerSession.xml.

'#Designed to run from Active Setup - much quicker than using the msi self-repairvia active setup.

 

SetwshShell = CreateObject("WScript.Shell")

Setfso = CreateObject("Scripting.FileSystemObject")

 

'#Get OS Architecture

blTestArch= (wshShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%") ="%ProgramFiles(x86)%")  '#Note, if this var is populated, then this must be an x64 OS.

strOSArch= "x64"

IfblTestArch = True Then strOSArch = "x86"

 

strUserProfile  =wshShell.ExpandEnvironmentStrings("%USERPROFILE%")

 

'#Set up architecture-specific variables

IfstrOSArch = "x64" Then

    strProgramFiles =wshShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%")

    strTarget1 = wshShell.ExpandEnvironmentStrings("%LOCALAPPDATA%\AppleComputer\QuickTime\")

    strTarget2 = strUserProfile &"\AppData\LocalLow\Apple Computer\QuickTime\"

Else

    strProgramFiles =wshShell.ExpandEnvironmentStrings("%ProgramFiles%")

    strTarget1 = strUserProfile &"\Application Data\Apple Computer\QuickTime\"

    strTarget2 = strUserProfile &"\Local Settings\Application Data\Apple Computer\QuickTime\"

EndIf

 

MakeDir(strTarget1)

MakeDir(strTarget2)

 

fso.CopyFilestrProgramFiles & "\QuickTime\_ICTST_Custom\QTPlayerSession.xml",strTarget1

fso.CopyFilestrProgramFiles & "\QuickTime\_ICTST_Custom\QuickTime.qtp",strTarget2

 

 

SubMakeDir(sDir)

    If Not fso.FolderExists(sDir) Then

        wshShell.Run "cmd /c MD""" & sDir & """", 0, True

    End If

EndSub

 

 

 

 

Answered 05/20/2015 by: Asker
Second Degree Green Belt

Please log in to comment
Answer this question or Comment on this question for clarity