Quicktime 7.2 Preferences issue
We're just doing our yearly image refresh and are hitting a problem in the multi-user environment with the quicktime install. The preferences file we copy appears to be ignored.
We install on a reference machine Quicktime 7.2, configure the player (to turn off automatic updates, notifications etc..) and save the preferences file to package folder. We install on our target workstations with the following script,
The problem is new users get the mime-type association prompt and have the default settings.. autoupdates turned on etc..
What we have noticed is that 7.2 differs from 6.5.2 (the last version of quicktime we had deployed) in that 7.2 has a HKCU setting to reference a prefs file in LocalSettings\Application Data\Apple Computer\Quicktime. It seems this preference file does not like being copied between user accounts. Configuring this prefs and copying to a new account causes Quicktime to overwrite it with default settings.
Anyone else had deployment headaches in the multi-user environment?
Kind Regards,
Ian./
We install on a reference machine Quicktime 7.2, configure the player (to turn off automatic updates, notifications etc..) and save the preferences file to package folder. We install on our target workstations with the following script,
start /wait msiexec /i QuickTime.msi ALLUSERS=1 QTINFO.BISQTPRO=1 REGSRCH_INSTALL_ASU=0 DESKTOP_SHORTCUTS=0 /qn
REM QTINFO.BISQTPRO=1 Removes Quicktime Pro nag
REM REGSRCH_INSTALL_ASU=0 Removes Apple Software Updater
REM DESKTOP_SHORTCUTS=0 Removes desktop shortcuts
reg We dont like QTtask.exe
delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "QuickTime Task" /f
mkdir "C:\Documents and Settings\All Users\Application Data\Apple Computer"
mkdir "C:\Documents and Settings\All Users\Application Data\Apple Computer\QuickTime"
copy QuickTime.qtp "C:\Documents and Settings\All Users\Application Data\Apple Computer\QuickTime"
The problem is new users get the mime-type association prompt and have the default settings.. autoupdates turned on etc..
What we have noticed is that 7.2 differs from 6.5.2 (the last version of quicktime we had deployed) in that 7.2 has a HKCU setting to reference a prefs file in LocalSettings\Application Data\Apple Computer\Quicktime. It seems this preference file does not like being copied between user accounts. Configuring this prefs and copying to a new account causes Quicktime to overwrite it with default settings.
Anyone else had deployment headaches in the multi-user environment?
Kind Regards,
Ian./
0 Comments
[ + ] Show comments
Answers (112)
Please log in to answer
Posted by:
piyushnasa
12 years ago
Follow below link for packaging latest version of Quicktime on Windows 7
http://msiworld.blogspot.com.au/2012/06/re-packaging-apple-quicktime-7728056.html
Posted by:
nheim
17 years ago
Posted by:
jmcfadyen
17 years ago
Posted by:
theoneandonly
17 years ago
Posted by:
tmountjr
17 years ago
We use Quicktime pretty extensively in our Music Department here, and we've had no problems with 7.2. We copy the following files to Documents and Settings:
\All Users\Application Data\Apple Computer\QuickTime\com.apple.QuickTime.plist - mostly just registration information if you have the pro version
\<Current User>\Application Data\Apple Computer\QuickTime\QTPlayerSession.xml - lots of options
\<Current User>\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp - binary preferences file
What I did was install this fresh on a computer, made all the changes in my profile, then copied the above files off to the network. You can either put them in a distribution script, or slip them into a transform. In our case the systems are all frozen with DeepFreeze, so all I did was copy the user-specific files into Default User and every new user every day gets the files. The way I've got it set up, it goes straight into the player - no nags, no ads, no media center, nothing.
\All Users\Application Data\Apple Computer\QuickTime\com.apple.QuickTime.plist - mostly just registration information if you have the pro version
\<Current User>\Application Data\Apple Computer\QuickTime\QTPlayerSession.xml - lots of options
\<Current User>\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp - binary preferences file
What I did was install this fresh on a computer, made all the changes in my profile, then copied the above files off to the network. You can either put them in a distribution script, or slip them into a transform. In our case the systems are all frozen with DeepFreeze, so all I did was copy the user-specific files into Default User and every new user every day gets the files. The way I've got it set up, it goes straight into the player - no nags, no ads, no media center, nothing.
Posted by:
nheim
17 years ago
Hi folks,
we change quite a lot of things on the 'Quicktime.msi' to make it mass-deployable.
Important: Be aware, that the config files lay on other places in Vista!
'QuickTime.qtp' in %USERPROFILE%\AppData\LocalLow
'QTPlayerSession.xml' in %USERPROFILE%\AppData\Roaming\Apple Computer\QuickTime
'com.apple.QuickTime.plist' in C:\ProgramData\Apple Computer\QuickTime
Therefore, you either make two releases for Vista and pre Vista or implement conditions to handle this stuff.
We went the second route and use a custom action to alter the 'DuplicateFile table' according to the OS.
We use the the 'DuplicateFile table' to install 'QTPlayerSession.xml' + 'QuickTime.qtp'.
This installs this files to a subdir on INSTALLDIR and copies them over to the profile each time a user logs into his profile the first time after the installation.
With this, there is no access to a cab file and the source and you have much quicker installs for the user settings in each profile.
The profile part is triggered by an 'Active Setup' entry with version info.
Regards, Nick
we change quite a lot of things on the 'Quicktime.msi' to make it mass-deployable.
Important: Be aware, that the config files lay on other places in Vista!
'QuickTime.qtp' in %USERPROFILE%\AppData\LocalLow
'QTPlayerSession.xml' in %USERPROFILE%\AppData\Roaming\Apple Computer\QuickTime
'com.apple.QuickTime.plist' in C:\ProgramData\Apple Computer\QuickTime
Therefore, you either make two releases for Vista and pre Vista or implement conditions to handle this stuff.
We went the second route and use a custom action to alter the 'DuplicateFile table' according to the OS.
We use the the 'DuplicateFile table' to install 'QTPlayerSession.xml' + 'QuickTime.qtp'.
This installs this files to a subdir on INSTALLDIR and copies them over to the profile each time a user logs into his profile the first time after the installation.
With this, there is no access to a cab file and the source and you have much quicker installs for the user settings in each profile.
The profile part is triggered by an 'Active Setup' entry with version info.
Regards, Nick
Posted by:
aPacker
17 years ago
nheim,
can you please expand on what you 'triggered' in Active Setup? A repair, a script, or a .exe to copy the settings files?
We are trying something similar to copy the QT settings across new and even existing user profiles (harder!), and at the moment using the DuplicateFiles table to copy those 2 files from AllUsers to CurrentUser and an ActiveSetup to run a VBS to copy files to new user profiles at log on.
Worried we may be over-complicating things, but then this ver of QT makes it a requirement! [:@]
can you please expand on what you 'triggered' in Active Setup? A repair, a script, or a .exe to copy the settings files?
We are trying something similar to copy the QT settings across new and even existing user profiles (harder!), and at the moment using the DuplicateFiles table to copy those 2 files from AllUsers to CurrentUser and an ActiveSetup to run a VBS to copy files to new user profiles at log on.
Worried we may be over-complicating things, but then this ver of QT makes it a requirement! [:@]
Posted by:
nheim
17 years ago
Hi Craig,
this are the most important steps, we do:
1. Create a new top level feature, we call it 'UserSettings'. Make 'QuickTimeEssentials' a sub feature of it.
2. Add the components 'com.apple.QuickTime.plist', 'UserSettingsRepair' + '_User'
2. Add 3 files: 'com.apple.QuickTime.plist' + 'QTPlayerSession.xml' + 'QuickTime.qtp' to the file table.
The later 2 belong to the _User component (see the post above).
We install 'QTPlayerSession.xml' + 'QuickTime.qtp' to a new directory called '_User' below INSTALLDIR.
3. Create a line in the 'DuplicateFile' table.
Something like this: DupFile1 UserSettingsRepair QTPlayerSession.xml QuickTime
4. We then use a VBS Custom Action to put a second line in there at runtime to copy 'QuickTime.qtp' to its final destination.
This is conditioned by the OS, because it needs to go to:
'\All Users\Application Data\Apple Computer\QuickTime' on pre Vista OS'.
And: '%USERPROFILE%\AppData\LocalLow' on Vista.
5. The 'UserSettingsRepair' component has a Registry key.
We create a new 'UserSettingsInstalled' key at: SOFTWARE\Apple Computer, Inc.\QuickTime and set it to '1'.
6. We create an Active Setup entry with this line:
msiexec /i [ProductCode] REINSTALL=UserSettings REINSTALLMODE=up /qn
7. With this steps, the package could just self heal in each profile.
We use AS, because we also have the (conditioned) possibility to put a shortcut to each users quick launch toolbar.
Such shortcuts can't be advertised and therefore provide no entry point for self healing.
With this in mind, AS is the only way for us to make sure the settings are there, when the user starts QT player for the first time.
Hope this helps a bit.
Regards, Nick
this are the most important steps, we do:
1. Create a new top level feature, we call it 'UserSettings'. Make 'QuickTimeEssentials' a sub feature of it.
2. Add the components 'com.apple.QuickTime.plist', 'UserSettingsRepair' + '_User'
2. Add 3 files: 'com.apple.QuickTime.plist' + 'QTPlayerSession.xml' + 'QuickTime.qtp' to the file table.
The later 2 belong to the _User component (see the post above).
We install 'QTPlayerSession.xml' + 'QuickTime.qtp' to a new directory called '_User' below INSTALLDIR.
3. Create a line in the 'DuplicateFile' table.
Something like this: DupFile1 UserSettingsRepair QTPlayerSession.xml QuickTime
4. We then use a VBS Custom Action to put a second line in there at runtime to copy 'QuickTime.qtp' to its final destination.
This is conditioned by the OS, because it needs to go to:
'\All Users\Application Data\Apple Computer\QuickTime' on pre Vista OS'.
And: '%USERPROFILE%\AppData\LocalLow' on Vista.
5. The 'UserSettingsRepair' component has a Registry key.
We create a new 'UserSettingsInstalled' key at: SOFTWARE\Apple Computer, Inc.\QuickTime and set it to '1'.
6. We create an Active Setup entry with this line:
msiexec /i [ProductCode] REINSTALL=UserSettings REINSTALLMODE=up /qn
7. With this steps, the package could just self heal in each profile.
We use AS, because we also have the (conditioned) possibility to put a shortcut to each users quick launch toolbar.
Such shortcuts can't be advertised and therefore provide no entry point for self healing.
With this in mind, AS is the only way for us to make sure the settings are there, when the user starts QT player for the first time.
Hope this helps a bit.
Regards, Nick
Posted by:
aPacker
17 years ago
Thanks Nick, it does help!
So, with your technique are you able to get away with a repair without it looking for the MSI source as it writes the files from the _User dir using the cached source?
I presume you add the top level feature aka the 'jmcfadyen technique' I've seen before.
As you probably know (just correcting for others), the location for the qtp file for each user pre-Vista is as 'tmountjr' says above:
\<Current User>\Local Settings\Application Data\Apple Computer\QuickTime\
not as you noted:
'\All Users\Application Data\Apple Computer\QuickTime' on pre Vista OS'.
Maybe others can confirm but I think this is a change from the location of the qtp settings file from previous vers (e.g. 7.1.5)?
Cheers for the help.
Craig.
So, with your technique are you able to get away with a repair without it looking for the MSI source as it writes the files from the _User dir using the cached source?
I presume you add the top level feature aka the 'jmcfadyen technique' I've seen before.
As you probably know (just correcting for others), the location for the qtp file for each user pre-Vista is as 'tmountjr' says above:
\<Current User>\Local Settings\Application Data\Apple Computer\QuickTime\
not as you noted:
'\All Users\Application Data\Apple Computer\QuickTime' on pre Vista OS'.
Maybe others can confirm but I think this is a change from the location of the qtp settings file from previous vers (e.g. 7.1.5)?
Cheers for the help.
Craig.
Posted by:
nheim
17 years ago
Hi Craig,
yes the additional feature uses John's technique.
With the Acitve Setup thing, i not even have a repair.
It does a reinstall of just this top featue, which contains only the things, which go to the profile.
Sorry about the path: Apple changed this in Version 7.2. But its good change.
This package is getting better, slowly, but they are making some progress :-)
Hope this clarifies it.
Regards, Nick
yes the additional feature uses John's technique.
With the Acitve Setup thing, i not even have a repair.
It does a reinstall of just this top featue, which contains only the things, which go to the profile.
Sorry about the path: Apple changed this in Version 7.2. But its good change.
This package is getting better, slowly, but they are making some progress :-)
Hope this clarifies it.
Regards, Nick
Posted by:
aPacker
17 years ago
Thanks Nick,
got it working except for the 'Quicktime.qtp' file, which on REININSTALL=Usersettings for a new user, wont copy that one file to the path:
'...\<Current User>\Local Settings\Application Data\Apple Computer\QuickTime\'
I've set up the SystemFolderProperty 'LocalAppDataFolder' in the Dir Table and in the MSIlog it resolves that correctly for the current user, BUT when it resolves its subdirs in the Dir Table: 'Apple Computer' and 'Quicktime', it changes the paths, replacing <Current User> with <TheOriginalInstallerUser>! And because the CurrentUser doesnt have access to the OrigUser profile it fails to copy.
Im lost as to why. Tried using standard components to install these files, also DuplicateFiles after installing to _User as per your method, same result in any case. Funny that the .xml works fine and copies to AppData, but the .qtp gets stuck copying to LocalAppData!? Just tried another file and the same result , so its LocalAppData that is the prob somehow.
Im v close to just VBscripting it I think (still learnt a lot in this process though!).
Log excerpt (user IDs replaced):
got it working except for the 'Quicktime.qtp' file, which on REININSTALL=Usersettings for a new user, wont copy that one file to the path:
'...\<Current User>\Local Settings\Application Data\Apple Computer\QuickTime\'
I've set up the SystemFolderProperty 'LocalAppDataFolder' in the Dir Table and in the MSIlog it resolves that correctly for the current user, BUT when it resolves its subdirs in the Dir Table: 'Apple Computer' and 'Quicktime', it changes the paths, replacing <Current User> with <TheOriginalInstallerUser>! And because the CurrentUser doesnt have access to the OrigUser profile it fails to copy.
Im lost as to why. Tried using standard components to install these files, also DuplicateFiles after installing to _User as per your method, same result in any case. Funny that the .xml works fine and copies to AppData, but the .qtp gets stuck copying to LocalAppData!? Just tried another file and the same result , so its LocalAppData that is the prob somehow.
Im v close to just VBscripting it I think (still learnt a lot in this process though!).
Log excerpt (user IDs replaced):
MSI (s) (14:60) [15:41:01:676]: Dir (target): Key: LocalAppDataFolder , Object: C:\Documents and Settings\<CurrentUserHere>\Local Settings\Application Data\
MSI (s) (14:60) [15:41:01:676]: Dir (target): Key: APPLE_COMPUTER , Object: C:\Documents and Settings\<OriginalInstallerUserHere>\Local Settings\Application Data\Apple Computer\
MSI (s) (14:60) [15:41:01:676]: Dir (target): Key: QUICKTIME , Object: C:\Documents and Settings\<OriginalInstallerUserHere>\Local Settings\Application Data\Apple Computer\Quicktime\
Posted by:
nheim
17 years ago
Hi Craig,
your allmost there! Everything has its price. :-)
Don't VBS this, because this is a common thing, you will need quite often in the future. Believe me!
(Although, maybe some VBS will be needed later on..)
The problem here is, that 'Local Settings' is not among the automatically resolved User Shellfolders in a MSI.
Therefore you need to construct the hole directory tree for yourself.
Fortunately, Apple did the main part already. The path to the current Users Profile is set with the Custom Action 'Set_CurrentUserFolder'.
It sets the directory property 'CurrentUserFolder' to the actual path.
You can see it being called in 'InstallExecuteSequence' and 'InstallUISequence' between the 'CostInitalize' and the 'CostFinalize' actions.
With this, you can set up the further path, you need like this:
LocalSettings CurrentUserFolder LOCSET~1|Local Settings
LS_AppData LocalSettings APPLIC~1|Application Data
LS_Apple_Comp LS_AppData APPLEC~2|Apple Computer
LS_Apple_Comp_QuickTime LS_Apple_Comp QUICKT~2|QuickTime
And finally, in 'DuplicateFile' you set the 'DestFolder' entry to 'LS_Apple_Comp_QuickTime'
Regards, Nick
your allmost there! Everything has its price. :-)
Don't VBS this, because this is a common thing, you will need quite often in the future. Believe me!
(Although, maybe some VBS will be needed later on..)
The problem here is, that 'Local Settings' is not among the automatically resolved User Shellfolders in a MSI.
Therefore you need to construct the hole directory tree for yourself.
Fortunately, Apple did the main part already. The path to the current Users Profile is set with the Custom Action 'Set_CurrentUserFolder'.
It sets the directory property 'CurrentUserFolder' to the actual path.
You can see it being called in 'InstallExecuteSequence' and 'InstallUISequence' between the 'CostInitalize' and the 'CostFinalize' actions.
With this, you can set up the further path, you need like this:
LocalSettings CurrentUserFolder LOCSET~1|Local Settings
LS_AppData LocalSettings APPLIC~1|Application Data
LS_Apple_Comp LS_AppData APPLEC~2|Apple Computer
LS_Apple_Comp_QuickTime LS_Apple_Comp QUICKT~2|QuickTime
And finally, in 'DuplicateFile' you set the 'DestFolder' entry to 'LS_Apple_Comp_QuickTime'
Regards, Nick
Posted by:
aPacker
17 years ago
Nick,
I had found and used 'CurrentUserFolder' the other day and then constructed the rest of the tree, and I still had the same problem - but now I see why!
I had still been using names like 'APPLE_QUICKTIME' and 'QUICKTIME' for the Dir IDs (default assignments from previous workings) where you used "LS_Apple_Comp" "LS_Apple_Comp_QuickTime" respectively. My IDs must've been in use elsewhere and so messing up the resolution of the paths? As soon as I changed these to custom IDs like yours and modified the DuplicateTable to suit, it worked!! (so simple when you step back and are shown it [8|] !)
Nick, you're a job saver, thanks from the other side of the world!
Craig.
'Look Ma! No VBscript!'
I had found and used 'CurrentUserFolder' the other day and then constructed the rest of the tree, and I still had the same problem - but now I see why!
I had still been using names like 'APPLE_QUICKTIME' and 'QUICKTIME' for the Dir IDs (default assignments from previous workings) where you used "LS_Apple_Comp" "LS_Apple_Comp_QuickTime" respectively. My IDs must've been in use elsewhere and so messing up the resolution of the paths? As soon as I changed these to custom IDs like yours and modified the DuplicateTable to suit, it worked!! (so simple when you step back and are shown it [8|] !)
Nick, you're a job saver, thanks from the other side of the world!
Craig.
'Look Ma! No VBscript!'
Posted by:
nheim
17 years ago
Posted by:
joedown
17 years ago
Posted by:
nheim
17 years ago
Hi Joe,
good question.
You have to consider what this components jobs will be.
To stay with this QT stuff:
'com.apple.QuickTime.plist' puts a file to a folder in the 'All Users' profile (or ProgramData Folder in Vista). --> Directory is the destination of this file.
'UserSettingsRepair' installs a regkey to the users profile and files indirectly via the 'DuplicateFile' table. --> We use a regkey here. Directory can be anything useful.
'_User' installs config files into folder below the INSTALLDIR folder. --> Directory is the destination of this files.
Of course, you have to author some of this directories in the 'directory table'.
Hope, this clarifies it.
Regards, Nick
good question.
You have to consider what this components jobs will be.
To stay with this QT stuff:
'com.apple.QuickTime.plist' puts a file to a folder in the 'All Users' profile (or ProgramData Folder in Vista). --> Directory is the destination of this file.
'UserSettingsRepair' installs a regkey to the users profile and files indirectly via the 'DuplicateFile' table. --> We use a regkey here. Directory can be anything useful.
'_User' installs config files into folder below the INSTALLDIR folder. --> Directory is the destination of this files.
Of course, you have to author some of this directories in the 'directory table'.
Hope, this clarifies it.
Regards, Nick
Posted by:
joedown
17 years ago
Posted by:
nheim
17 years ago
Hi Joe,
Here is the receipt to include the 3 config files in the MSI and load the configuration automatically into each profile on the first logon after the installation.
This is part of the documentation we created during our changes.
It also demonstrates the use of some Installer-SDK tools.
We create a new feature for the user settings, which will be installed by self healing or Active Setup into each user profile.
The 3 files for the settings have to placed into different directories on Vista and XP/W2k
Directories for 'com.apple.QuickTime.plist'
Vista: C:\ProgramData\Apple Computer\QuickTime\
XP: C:\Documents and Settings\All Users\Application Data\Apple Computer\<QuickTime\
Directories for 'QTPlayerSession.xml'
Vista: %USERPROFILE\AppData\Local\Apple Computer\QuickTime\
XP: %USERPROFILE\Local Settings\Application Data\Apple Computer\QuickTime\
Directories for 'QuickTime.qtp'
Vista: %USERPROFILE\AppData\LocalLow\Apple Computer\QuickTime\
XP: %USERPROFILE\Application Data\Apple Computer\QuickTime\
We don't want this files being loaded from the source-cabinet, if a AS-install or self healing in a profile occurs.
The solution is to use 'DuplicateFile' action for this purpose.
During the main installation process, we install this files into a folder in the programs directory.
The 'DuplicateFile' action is then used to copy this files to their final destination.
Nessecary steps:
Insert new feature 'UserSettings' as top level feature.
add this line to the feature table:
UserSettings UserSettings 1 1 16
change this line in the feature table:
QuickTimeEssentials UserSettings QuickTime Essentials 2 1 INSTALLDIR 16
add this lines to the Component table:
com.apple.QuickTime.plist {40F04B7A-61DB-4590-821D-1237913B7345} QUICKTIMECOMMONAPPDATAFOLDER 0 com.apple.QuickTime.plist
_User {BE32CBB8-9113-4F0F-A558-D50E56AA1612} UserSet 0 QTPlayerSession.xml
UserSettingsRepair {758895DA-A013-4AC1-99D3-6027960DDD94} QuickTime 4 VersionNT < 600 RegUser1
UserSettingsRepairVista {F7570262-0BE0-4AC6-8903-9A1CC6430813} QuickTime 4 VersionNT >= 600 RegUser1Vista
add this lines to the FeatureComponents table:
QuickTimeEssentials _User
UserSettings UserSettingsRepair
UserSettings UserSettingsRepairVista
add this lines to the Directory table for the .qtp/.xml files on Vista:
AppData CurrentUserFolder AppData
Local AppData Local
Local_Apple_Comp Local APPLEC~2|Apple Computer
Local_Apple_Comp_QuickTime Local_Apple_Comp QUICKT~2|QuickTime
LocalLow AppData LocalLow
LL_Apple_Comp LocalLow APPLEC~2|Apple Computer
LL_Apple_Comp_QuickTime LL_Apple_Comp QUICKT~2|QuickTime
add this lines to the Directory table for the .qtp/.xml files on XP:
Apple_Computer AppDataFolder APPLEC~2|Apple Computer
QuickTime Apple_Computer QUICKT~3|QuickTime
LocalSettings CurrentUserFolder LOCSET~1|Local Settings
LS_AppData LocalSettings APPLIC~1|Application Data
LS_Apple_Comp LS_AppData APPLEC~2|Apple Computer
LS_Apple_Comp_QuickTime LS_Apple_Comp QUICKT~2|QuickTime
add this lines to the Directory table for the .plist file:
APPLECOMMONAPPDATAFOLDER CommonAppDataFolder APPLEC~1|Apple Computer
QUICKTIMECOMMONAPPDATAFOLDER APPLECOMMONAPPDATAFOLDER QUICKT~1|QuickTime
add this line to the Directory table for the .qtp/.xml DuplicateFile:
UserSet INSTALLDIR UserSet
change this line in the InstallExecuteSequence and InstallUISequence tables:
Set_CurrentUserFolder %USERPROFILE 907
To generate the configuration files, Quicktime has to be installed straight forward.
After that, start Quicktime and configure the settings you need.
Like: Disable Update, Register the Pro version, Disable the content guide at startup and so on.
This settings will be stored like this:
QTPlayerSession.xml (Basic settings)
com.apple.QuickTime.plist (Username/Serial#)
QuickTime.qtp (Disable Update + generic settings)
harvest this files and copy them to a directory.
make a file called 'config.ddf' in it and copy the following lines into it:
----config.ddf begins here-------
.Set CabinetName1=config.cab
.Set DiskDirectoryTemplate=.
.Set CompressionType=MSZIP
.Set Compress=ON
.Set Cabinet=ON
com.apple.QuickTime.plist com.apple.QuickTime.plist
QTPlayerSession.xml QTPlayerSession.xml
QuickTime.qtp QuickTime.qtp
----config.ddf ends here-------
now generate the 'config.cab':
makecab /f config.ddf
If we want to embedd this CAB into the MSI with a MST, we need to store it in a table.
We use the 'Binaray' table for this because it already exists. Embedd the file with this command:
cscript WiStream.vbs QuickTime.msi config.cab Binary.config.cab
add this line to the Media table:
2 595 2 #Binary.config.cab DISK2
add this lines to the Registry table:
RegUser1 1 SOFTWARE\Apple Computer, Inc.\QuickTime UserSettingsInstalled 1 UserSettingsRepair
RegUser1Vista 1 SOFTWARE\Apple Computer, Inc.\QuickTime UserSettingsInstalled 1 UserSettingsRepairVista
RegHKLM3 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] [ProductName] User Setup QuickTime.qts
RegHKLM2 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Version 7,2,0 QuickTime.qts
RegHKLM1 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Stubpath msiexec /i [ProductCode] REINSTALL=UserSettings REINSTALLMODE=up /qn QuickTime.qts
add this lines to the File table:
com.apple.QuickTime.plist com.apple.QuickTime.plist COMAPP~1.PLI|com.apple.QuickTime.plist 498 0 593
QTPlayerSession.xml _User QTPLAY~1.XML|QTPlayerSession.xml 1594 0 594
QuickTime.qtp _User QUICKT~1.QTP|QuickTime.qtp 12805 0 595
add this lines to the DuplicateFile table:
DupFile1 UserSettingsRepair QTPlayerSession.xml QuickTime
DupFile2 UserSettingsRepair QuickTime.qtp LS_Apple_Comp_QuickTime
DupFile11 UserSettingsRepairVista QTPlayerSession.xml Local_Apple_Comp_QuickTime
DupFile12 UserSettingsRepairVista QuickTime.qtp LL_Apple_Comp_QuickTime
This new files are unversioned. Therefore we need to generate entries in the 'MsiFileHash' table for this files.
See: http://blogs.msdn.com/astebner/archive/2005/08/30/458295.aspx
Make a copy of the 'Quicktime.msi' file and name it '1.msi'.
Load 1.msi into ORCA and sort the file table after the sequence.
Delete all lines, but new last tree.
Save it.
Make sure 1.msi and the 3 config files are present in the working directory.
Update 1.msi with this command:
cscript WiFilVer.vbs 1.msi /U /H
Now, 1.msi should contain update Filesizes and Hashes.
Copy them over to 'Quicktime.msi'
Note: All the scripts and ORCA are part of the Installer SDK. Makecab is part of XP and Vista.
If you copy this post to Notepad, search for ' ' (4 spaces) and replace them with a tab.
Then you should be able to paste the lines into ORCA with Ctrl-Shift-V
That's it. Have fun.
Regards, Nick
Here is the receipt to include the 3 config files in the MSI and load the configuration automatically into each profile on the first logon after the installation.
This is part of the documentation we created during our changes.
It also demonstrates the use of some Installer-SDK tools.
We create a new feature for the user settings, which will be installed by self healing or Active Setup into each user profile.
The 3 files for the settings have to placed into different directories on Vista and XP/W2k
Directories for 'com.apple.QuickTime.plist'
Vista: C:\ProgramData\Apple Computer\QuickTime\
XP: C:\Documents and Settings\All Users\Application Data\Apple Computer\<QuickTime\
Directories for 'QTPlayerSession.xml'
Vista: %USERPROFILE\AppData\Local\Apple Computer\QuickTime\
XP: %USERPROFILE\Local Settings\Application Data\Apple Computer\QuickTime\
Directories for 'QuickTime.qtp'
Vista: %USERPROFILE\AppData\LocalLow\Apple Computer\QuickTime\
XP: %USERPROFILE\Application Data\Apple Computer\QuickTime\
We don't want this files being loaded from the source-cabinet, if a AS-install or self healing in a profile occurs.
The solution is to use 'DuplicateFile' action for this purpose.
During the main installation process, we install this files into a folder in the programs directory.
The 'DuplicateFile' action is then used to copy this files to their final destination.
Nessecary steps:
Insert new feature 'UserSettings' as top level feature.
add this line to the feature table:
UserSettings UserSettings 1 1 16
change this line in the feature table:
QuickTimeEssentials UserSettings QuickTime Essentials 2 1 INSTALLDIR 16
add this lines to the Component table:
com.apple.QuickTime.plist {40F04B7A-61DB-4590-821D-1237913B7345} QUICKTIMECOMMONAPPDATAFOLDER 0 com.apple.QuickTime.plist
_User {BE32CBB8-9113-4F0F-A558-D50E56AA1612} UserSet 0 QTPlayerSession.xml
UserSettingsRepair {758895DA-A013-4AC1-99D3-6027960DDD94} QuickTime 4 VersionNT < 600 RegUser1
UserSettingsRepairVista {F7570262-0BE0-4AC6-8903-9A1CC6430813} QuickTime 4 VersionNT >= 600 RegUser1Vista
add this lines to the FeatureComponents table:
QuickTimeEssentials _User
UserSettings UserSettingsRepair
UserSettings UserSettingsRepairVista
add this lines to the Directory table for the .qtp/.xml files on Vista:
AppData CurrentUserFolder AppData
Local AppData Local
Local_Apple_Comp Local APPLEC~2|Apple Computer
Local_Apple_Comp_QuickTime Local_Apple_Comp QUICKT~2|QuickTime
LocalLow AppData LocalLow
LL_Apple_Comp LocalLow APPLEC~2|Apple Computer
LL_Apple_Comp_QuickTime LL_Apple_Comp QUICKT~2|QuickTime
add this lines to the Directory table for the .qtp/.xml files on XP:
Apple_Computer AppDataFolder APPLEC~2|Apple Computer
QuickTime Apple_Computer QUICKT~3|QuickTime
LocalSettings CurrentUserFolder LOCSET~1|Local Settings
LS_AppData LocalSettings APPLIC~1|Application Data
LS_Apple_Comp LS_AppData APPLEC~2|Apple Computer
LS_Apple_Comp_QuickTime LS_Apple_Comp QUICKT~2|QuickTime
add this lines to the Directory table for the .plist file:
APPLECOMMONAPPDATAFOLDER CommonAppDataFolder APPLEC~1|Apple Computer
QUICKTIMECOMMONAPPDATAFOLDER APPLECOMMONAPPDATAFOLDER QUICKT~1|QuickTime
add this line to the Directory table for the .qtp/.xml DuplicateFile:
UserSet INSTALLDIR UserSet
change this line in the InstallExecuteSequence and InstallUISequence tables:
Set_CurrentUserFolder %USERPROFILE 907
To generate the configuration files, Quicktime has to be installed straight forward.
After that, start Quicktime and configure the settings you need.
Like: Disable Update, Register the Pro version, Disable the content guide at startup and so on.
This settings will be stored like this:
QTPlayerSession.xml (Basic settings)
com.apple.QuickTime.plist (Username/Serial#)
QuickTime.qtp (Disable Update + generic settings)
harvest this files and copy them to a directory.
make a file called 'config.ddf' in it and copy the following lines into it:
----config.ddf begins here-------
.Set CabinetName1=config.cab
.Set DiskDirectoryTemplate=.
.Set CompressionType=MSZIP
.Set Compress=ON
.Set Cabinet=ON
com.apple.QuickTime.plist com.apple.QuickTime.plist
QTPlayerSession.xml QTPlayerSession.xml
QuickTime.qtp QuickTime.qtp
----config.ddf ends here-------
now generate the 'config.cab':
makecab /f config.ddf
If we want to embedd this CAB into the MSI with a MST, we need to store it in a table.
We use the 'Binaray' table for this because it already exists. Embedd the file with this command:
cscript WiStream.vbs QuickTime.msi config.cab Binary.config.cab
add this line to the Media table:
2 595 2 #Binary.config.cab DISK2
add this lines to the Registry table:
RegUser1 1 SOFTWARE\Apple Computer, Inc.\QuickTime UserSettingsInstalled 1 UserSettingsRepair
RegUser1Vista 1 SOFTWARE\Apple Computer, Inc.\QuickTime UserSettingsInstalled 1 UserSettingsRepairVista
RegHKLM3 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] [ProductName] User Setup QuickTime.qts
RegHKLM2 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Version 7,2,0 QuickTime.qts
RegHKLM1 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Stubpath msiexec /i [ProductCode] REINSTALL=UserSettings REINSTALLMODE=up /qn QuickTime.qts
add this lines to the File table:
com.apple.QuickTime.plist com.apple.QuickTime.plist COMAPP~1.PLI|com.apple.QuickTime.plist 498 0 593
QTPlayerSession.xml _User QTPLAY~1.XML|QTPlayerSession.xml 1594 0 594
QuickTime.qtp _User QUICKT~1.QTP|QuickTime.qtp 12805 0 595
add this lines to the DuplicateFile table:
DupFile1 UserSettingsRepair QTPlayerSession.xml QuickTime
DupFile2 UserSettingsRepair QuickTime.qtp LS_Apple_Comp_QuickTime
DupFile11 UserSettingsRepairVista QTPlayerSession.xml Local_Apple_Comp_QuickTime
DupFile12 UserSettingsRepairVista QuickTime.qtp LL_Apple_Comp_QuickTime
This new files are unversioned. Therefore we need to generate entries in the 'MsiFileHash' table for this files.
See: http://blogs.msdn.com/astebner/archive/2005/08/30/458295.aspx
Make a copy of the 'Quicktime.msi' file and name it '1.msi'.
Load 1.msi into ORCA and sort the file table after the sequence.
Delete all lines, but new last tree.
Save it.
Make sure 1.msi and the 3 config files are present in the working directory.
Update 1.msi with this command:
cscript WiFilVer.vbs 1.msi /U /H
Now, 1.msi should contain update Filesizes and Hashes.
Copy them over to 'Quicktime.msi'
Note: All the scripts and ORCA are part of the Installer SDK. Makecab is part of XP and Vista.
If you copy this post to Notepad, search for ' ' (4 spaces) and replace them with a tab.
Then you should be able to paste the lines into ORCA with Ctrl-Shift-V
That's it. Have fun.
Regards, Nick
Posted by:
joedown
17 years ago
This has been a big help but I don't quite have it working yet. When running validation Orca complains about the _User component and I don't understand why the key path is QTPlayerSession.xml. Why would we not also reference Quicktime.qtp? Is that because the install already creates the folders for the location of the Quicktime.qtp file?
I'm not sure what's wrong at this point but the folders never get created for the location of where the QTPlayerSession.xml file should go during install.
I don't wish to put the three files in a cab file since I have an admistrative install point. Is there any changes I need to make to the msi? I have the two files located in the install point under Program Files\QuickTime\UserSet. That is the location where the wifilver.vbs script was looking for the files.
I'm not sure what's wrong at this point but the folders never get created for the location of where the QTPlayerSession.xml file should go during install.
I don't wish to put the three files in a cab file since I have an admistrative install point. Is there any changes I need to make to the msi? I have the two files located in the install point under Program Files\QuickTime\UserSet. That is the location where the wifilver.vbs script was looking for the files.
Posted by:
nheim
17 years ago
Hi Joe,
did you copy the lines from my post above?
If yes, check the GUID from 'UserSettingsRepairVista' component. It was accidently a duplicate of the 'UserSettingsRepair' GUID.
It is corrected now.
To your first question: I use only one component ( _User) for the installation of 'QTPlayerSession.xml' + 'Quicktime.qtp' to its base location. Therefore, only one of them can be the key file for the component. You can change it to 'Quicktime.qtp', but this doesn't make a difference at all.
What is the error you get for the '_User' component on validation?
Using an admin installation should work. The folder seems ok to me.
Regards, Nick
did you copy the lines from my post above?
If yes, check the GUID from 'UserSettingsRepairVista' component. It was accidently a duplicate of the 'UserSettingsRepair' GUID.
It is corrected now.
To your first question: I use only one component ( _User) for the installation of 'QTPlayerSession.xml' + 'Quicktime.qtp' to its base location. Therefore, only one of them can be the key file for the component. You can change it to 'Quicktime.qtp', but this doesn't make a difference at all.
What is the error you get for the '_User' component on validation?
Using an admin installation should work. The folder seems ok to me.
Regards, Nick
Posted by:
joedown
17 years ago
I copied the lines above. I left out the Vista stuff since we don't have Vista and we are not using the pro version of QT so I left out the entries for the .plist file. I went through the whole process 3 times to try and be sure I wasn't making an error.
The error I receive is Component:'_User' does not belong to any feature.
Setting aside the two files I'm trying to add, I'm not even to the point where the installation complains about not being able to find the two files. It's as if all the modifications are being ignored?
Here is my modifications:
Feature
QuickTimeEssentials UserSettings QuickTime Essentials 2 1 INSTALLDIR 16
UserSettings UserSettings 1 1 16
Component
_User {BE32CBB8-9113-4F0F-A558-D50E56AA1612} UserSet 0 QTPlayerSession.xml
UserSettingsRepair {758895DA-A013-4AC1-99D3-6027960DDD94} QuickTime 4 VersionNT < 600 RegUser1
FeatureComponents
UserSettings UserSettingsRepair
Directory
LocalSettings CurrentUserFolder LOCSET~1|Local Settings
Apple_Computer AppDataFolder APPLEC~2|Apple Computer
QuickTime Apple_Computer QUICKT~3|QuickTime
UserSet INSTALLDIR UserSet
LS_AppData LocalSettings APPLIC~1|Application Data
LS_Apple_Comp LS_AppData APPLEC~2|Apple Computer
LS_Apple_Comp_QuickTime LS_Apple_Comp QUICKT~2|QuickTime
Registry
RegUser1 1 SOFTWARE\Apple Computer, Inc.\QuickTime UserSettingsInstalled 1 UserSettingsRepair
RegHKLM3 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] [ProductName] User Setup QuickTime.qts
RegHKLM2 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Version 7,2,0 QuickTime.qts
RegHKLM1 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Stubpath msiexec /i [ProductCode] REINSTALL=UserSettings REINSTALLMODE=up /qn QuickTime.qts
File
QTPlayerSession.xml _User QTPLAY~1.XML|QTPlayerSession.xml 1706 1033 8192 594
QuickTime.qtp _User QUICKT~1.QTP|QuickTime.qtp 12856 1033 8192 593
DuplicateFile
DupFile1 UserSettingsRepair QTPlayerSession.xml QuickTime
DupFile2 UserSettingsRepair QuickTime.qtp LS_Apple_Comp_QuickTime
The error I receive is Component:'_User' does not belong to any feature.
Setting aside the two files I'm trying to add, I'm not even to the point where the installation complains about not being able to find the two files. It's as if all the modifications are being ignored?
Here is my modifications:
Feature
QuickTimeEssentials UserSettings QuickTime Essentials 2 1 INSTALLDIR 16
UserSettings UserSettings 1 1 16
Component
_User {BE32CBB8-9113-4F0F-A558-D50E56AA1612} UserSet 0 QTPlayerSession.xml
UserSettingsRepair {758895DA-A013-4AC1-99D3-6027960DDD94} QuickTime 4 VersionNT < 600 RegUser1
FeatureComponents
UserSettings UserSettingsRepair
Directory
LocalSettings CurrentUserFolder LOCSET~1|Local Settings
Apple_Computer AppDataFolder APPLEC~2|Apple Computer
QuickTime Apple_Computer QUICKT~3|QuickTime
UserSet INSTALLDIR UserSet
LS_AppData LocalSettings APPLIC~1|Application Data
LS_Apple_Comp LS_AppData APPLEC~2|Apple Computer
LS_Apple_Comp_QuickTime LS_Apple_Comp QUICKT~2|QuickTime
Registry
RegUser1 1 SOFTWARE\Apple Computer, Inc.\QuickTime UserSettingsInstalled 1 UserSettingsRepair
RegHKLM3 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] [ProductName] User Setup QuickTime.qts
RegHKLM2 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Version 7,2,0 QuickTime.qts
RegHKLM1 2 SOFTWARE\Microsoft\Active Setup\Installed Components\[ProductCode] Stubpath msiexec /i [ProductCode] REINSTALL=UserSettings REINSTALLMODE=up /qn QuickTime.qts
File
QTPlayerSession.xml _User QTPLAY~1.XML|QTPlayerSession.xml 1706 1033 8192 594
QuickTime.qtp _User QUICKT~1.QTP|QuickTime.qtp 12856 1033 8192 593
DuplicateFile
DupFile1 UserSettingsRepair QTPlayerSession.xml QuickTime
DupFile2 UserSettingsRepair QuickTime.qtp LS_Apple_Comp_QuickTime
Posted by:
nheim
17 years ago
Posted by:
joedown
17 years ago
Posted by:
nheim
17 years ago
Posted by:
joedown
17 years ago
Got it! I had one letter that was the wrong case [:@]
Almost finished. When a new user logs in it appears active setup does its thing and deploys the two files but the quicktime.qtp file gets deployed to C:\Current User\Local Settings\Application Data\Apple Computer\Quicktime
Logging the reinstall I noticed that the CurrentUserFolder property is being set to C:\Current User instead of C:\Documents and Settings\
Following through the process I checked the condition for Set_CurrentUserFolder in the InstallExecuteSequence table and noticed it's set to NOT Installed and %USERPROFILE I changed it to just %USERPROFILE This seems to work but I hope I haven't broken anything while fixing it.
One more question, this method uses active setup to accomplish this task right? Is this easier than using an advertised shortcut to do the same thing?
Almost finished. When a new user logs in it appears active setup does its thing and deploys the two files but the quicktime.qtp file gets deployed to C:\Current User\Local Settings\Application Data\Apple Computer\Quicktime
Logging the reinstall I noticed that the CurrentUserFolder property is being set to C:\Current User instead of C:\Documents and Settings\
Following through the process I checked the condition for Set_CurrentUserFolder in the InstallExecuteSequence table and noticed it's set to NOT Installed and %USERPROFILE I changed it to just %USERPROFILE This seems to work but I hope I haven't broken anything while fixing it.
One more question, this method uses active setup to accomplish this task right? Is this easier than using an advertised shortcut to do the same thing?
Posted by:
nheim
17 years ago
Hi Joe,
but you got a new insight into MSI, didn't you ;-)
The 'CurrentUserFolder' thing was my fault. Was missing from my receipt (corrected it now).
But do it on the 'InstallUISequence' also.
To your question about AS:
Yes this method uses AS, but it works also with Self Healing.
You can test this, if you remove the 3 AS lines from the registry table.
Use the Quicktime shortcut in the Menu to test it. This one is already advertised by default.
I use AS on my method, because i give our administrators the possiblity to install a QuickLaunch and/or Desktop shortcut.
At least the QL SC can't be advertised and if the user starts the app with it for the first time, all the efforts to give the users our default preference are useless.
Regards, Nick
but you got a new insight into MSI, didn't you ;-)
The 'CurrentUserFolder' thing was my fault. Was missing from my receipt (corrected it now).
But do it on the 'InstallUISequence' also.
To your question about AS:
Yes this method uses AS, but it works also with Self Healing.
You can test this, if you remove the 3 AS lines from the registry table.
Use the Quicktime shortcut in the Menu to test it. This one is already advertised by default.
I use AS on my method, because i give our administrators the possiblity to install a QuickLaunch and/or Desktop shortcut.
At least the QL SC can't be advertised and if the user starts the app with it for the first time, all the efforts to give the users our default preference are useless.
Regards, Nick
Posted by:
joedown
17 years ago
Posted by:
nheim
17 years ago
Hi Joe,
actually, you have to nothing more.
But it's a very interesting question.
The 'DuplicateFiles' action which copies this files over to the profile seems to lack any version checking at all.
So, it will always overwrite any existing file.
That behavior limits its use quite a bit.
Maybe some other folks know more about this.
Regards, Nick
actually, you have to nothing more.
But it's a very interesting question.
The 'DuplicateFiles' action which copies this files over to the profile seems to lack any version checking at all.
So, it will always overwrite any existing file.
That behavior limits its use quite a bit.
Maybe some other folks know more about this.
Regards, Nick
Posted by:
AngelD
17 years ago
As Nick mentioned, files installed by the DuplicateFiles action will always overwrite existing files.
The duplicate file will be installed if the original file (the file it duplicates) is installed, so the file versioning rules lies in the original file instead.
If you don't use the DuplicateFile table for a certain file located in the user's profile but rely on the self-healing you could first remove the existing file by adding the file to the RemoveFile table in which the file will first be deleted and then installed by the InstallFiles action.
The duplicate file will be installed if the original file (the file it duplicates) is installed, so the file versioning rules lies in the original file instead.
If you don't use the DuplicateFile table for a certain file located in the user's profile but rely on the self-healing you could first remove the existing file by adding the file to the RemoveFile table in which the file will first be deleted and then installed by the InstallFiles action.
Posted by:
nheim
17 years ago
Hi folks,
my previous post was inaccurate as hell :-(.
Did some more testing.
It looks like 'DuplicateFiles' does all the version testing, except that no Hash can be provided to unversioned files.
That means: All the rules mentioned here:
http://blogs.msdn.com/astebner/archive/2005/08/30/458295.aspx
apply. That means, if the existing files has newer date than the one we try to install, the existing file is kept.
Joe, that means to your question: To make it bulletproof, you have to go the route AngelD suggested.
Kim, thanks for the suggestion with the remove table. Nice idea.
Hope this clarifies it a bit.
Regards, Nick
my previous post was inaccurate as hell :-(.
Did some more testing.
It looks like 'DuplicateFiles' does all the version testing, except that no Hash can be provided to unversioned files.
That means: All the rules mentioned here:
http://blogs.msdn.com/astebner/archive/2005/08/30/458295.aspx
apply. That means, if the existing files has newer date than the one we try to install, the existing file is kept.
Joe, that means to your question: To make it bulletproof, you have to go the route AngelD suggested.
Kim, thanks for the suggestion with the remove table. Nice idea.
Hope this clarifies it a bit.
Regards, Nick
Posted by:
AngelD
17 years ago
Posted by:
joedown
17 years ago
Posted by:
AngelD
17 years ago
Have a look at the description for the the InstallMode column in the RemoveFile table http://msdn2.microsoft.com/en-us/library/aa371201.aspx
As it seems that you have understood this table I guess you easy can figure out the meaning of the Component_ column using the description info.
As it seems that you have understood this table I guess you easy can figure out the meaning of the Component_ column using the description info.
Posted by:
nheim
17 years ago
Hi Kim,
did some more testing today. This are 6 lines (wrapped) from a log of a prepared Quicktime.MSI:
MSI (s) (48:74) [12:54:13:930]: Executing op: FileCopy(SourceName=QuickTime.qtp,,DestName=QuickTime.qtp,Attributes=0,FileSize=9474,PerTick=0, _ IsCompressed=0,VerifyMedia=0,,,,,CheckCRC=0,,,InstallMode=262144,,,,,,,)
MSI (s) (48:74) [12:54:13:930]: File: C:\Documents and Settings\Administrator\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp; _
Won't Overwrite; Won't patch; Existing file is unversioned but modified
MSI (s) (48:F4) [12:36:47:441]: Executing op: FileCopy(SourceName=QuickTime.qtp,,DestName=QuickTime.qtp,Attributes=0,FileSize=9474,PerTick=0, _ IsCompressed=0,VerifyMedia=0,,,,,CheckCRC=0,,,InstallMode=262144,,,,,,,)
MSI (s) (48:F4) [12:36:47:457]: File: C:\Documents and Settings\Administrator\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp; _ Overwrite; Won't patch; Existing file is unversioned and unmodified - no source file hash provided to compare
MSI (s) (48:74) [12:54:13:930]: Executing op: FileCopy(SourceName=QTTask.exe,,DestName=QTTask.exe,Attributes=0,FileSize=286720,PerTick=0, _ IsCompressed=0,VerifyMedia=0,,,,,CheckCRC=0,Version=7.2.0.240,Language=1033,InstallMode=262144,,,,,,,)
MSI (s) (48:74) [12:54:13:930]: File: C:\Documents and Settings\Administrator\Local Settings\Application Data\Apple Computer\QuickTime\QTTask.exe; _
Won't Overwrite; Won't patch; Existing file is of an equal version
When the line which complains about no "file hash" was generated, this file actually had an entry in the 'MsiFileHash' table for the Filekeys in the File table AND the DuplicateFile table.
This lead me to the conclusion, that all the rules apply, but the one with hashes.
Regards, Nick
did some more testing today. This are 6 lines (wrapped) from a log of a prepared Quicktime.MSI:
MSI (s) (48:74) [12:54:13:930]: Executing op: FileCopy(SourceName=QuickTime.qtp,,DestName=QuickTime.qtp,Attributes=0,FileSize=9474,PerTick=0, _ IsCompressed=0,VerifyMedia=0,,,,,CheckCRC=0,,,InstallMode=262144,,,,,,,)
MSI (s) (48:74) [12:54:13:930]: File: C:\Documents and Settings\Administrator\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp; _
Won't Overwrite; Won't patch; Existing file is unversioned but modified
MSI (s) (48:F4) [12:36:47:441]: Executing op: FileCopy(SourceName=QuickTime.qtp,,DestName=QuickTime.qtp,Attributes=0,FileSize=9474,PerTick=0, _ IsCompressed=0,VerifyMedia=0,,,,,CheckCRC=0,,,InstallMode=262144,,,,,,,)
MSI (s) (48:F4) [12:36:47:457]: File: C:\Documents and Settings\Administrator\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp; _ Overwrite; Won't patch; Existing file is unversioned and unmodified - no source file hash provided to compare
MSI (s) (48:74) [12:54:13:930]: Executing op: FileCopy(SourceName=QTTask.exe,,DestName=QTTask.exe,Attributes=0,FileSize=286720,PerTick=0, _ IsCompressed=0,VerifyMedia=0,,,,,CheckCRC=0,Version=7.2.0.240,Language=1033,InstallMode=262144,,,,,,,)
MSI (s) (48:74) [12:54:13:930]: File: C:\Documents and Settings\Administrator\Local Settings\Application Data\Apple Computer\QuickTime\QTTask.exe; _
Won't Overwrite; Won't patch; Existing file is of an equal version
When the line which complains about no "file hash" was generated, this file actually had an entry in the 'MsiFileHash' table for the Filekeys in the File table AND the DuplicateFile table.
This lead me to the conclusion, that all the rules apply, but the one with hashes.
Regards, Nick
Posted by:
Trota
17 years ago
I have a question related to Quicktime Pro licensing. We have already repackaged and distributed the free version of Quicktime 7.2 to our computer labs at my university. Now one of the labs has purchased licenses for PRO and wants the serial number applied on all the computers in his lab.
I have been trying to locate where on the machine the license key is stored but I have had no luck finding it. It doesn't seem to be anyplace inthe registry or in a file that I can find. I've even installed QT, ran Repack, launched QT and entered the license key, ran Repack again and examined the output and it did not pick up any license key. Can anyone share their insights?
Thanks
Tom
System Administrator
University of Southern California
I have been trying to locate where on the machine the license key is stored but I have had no luck finding it. It doesn't seem to be anyplace inthe registry or in a file that I can find. I've even installed QT, ran Repack, launched QT and entered the license key, ran Repack again and examined the output and it did not pick up any license key. Can anyone share their insights?
Thanks
Tom
System Administrator
University of Southern California
Posted by:
joedown
17 years ago
I guess I'm not understanding the removefile table as well as I thought. The files I've requested to be removed do not get overwritten even though the ones I want copy over are newer than the existing ones on the test PC.
Here is what I have in my RemoveFile table:
QTPlayerSession.xml _User QTPlay~1.xml|QTPlayerSession.xml QuickTime 3
QuickTime.qtp _User Quick~1.qtp|QuickTime.qtp LS_Apple_Comp_QuickTime 3
Note to Trota:
I think the license is stored in the com.apple.QuickTime.plist file
Here is what I have in my RemoveFile table:
QTPlayerSession.xml _User QTPlay~1.xml|QTPlayerSession.xml QuickTime 3
QuickTime.qtp _User Quick~1.qtp|QuickTime.qtp LS_Apple_Comp_QuickTime 3
Note to Trota:
I think the license is stored in the com.apple.QuickTime.plist file
Posted by:
AngelD
17 years ago
Use UserSettingsRepair as the component as you're using this component for determine if the duplicate files should be installed or not.
FileKey = DelFile1
Component_ = UserSettingsRepair
FileName = QTPLAY~1.XML|QTPlayerSession.xml
DirProperty = QuickTime
InstallMode = 3
FileKey = DelFile2
Component_ = UserSettingsRepair
FileName = QUICKT~1.QTQ|QuickTime.qtp
DirProperty = LS_Apple_Comp_QuickTime
InstallMode = 3
FileKey = DelFile1
Component_ = UserSettingsRepair
FileName = QTPLAY~1.XML|QTPlayerSession.xml
DirProperty = QuickTime
InstallMode = 3
FileKey = DelFile2
Component_ = UserSettingsRepair
FileName = QUICKT~1.QTQ|QuickTime.qtp
DirProperty = LS_Apple_Comp_QuickTime
InstallMode = 3
Posted by:
nheim
17 years ago
Hi Tom,
The registration is in the file 'com.apple.QuickTime.plist' in the folder:
"C:\Documents and Settings\All Users\Application Data\Apple Computer\Quicktime\"
If you go up to post #19 in this tread, you can see everything you need to deploy this file.
Regards, Nick
ORIGINAL: Trota
I have been trying to locate where on the machine the license key is stored but I have had no luck finding it.
The registration is in the file 'com.apple.QuickTime.plist' in the folder:
"C:\Documents and Settings\All Users\Application Data\Apple Computer\Quicktime\"
If you go up to post #19 in this tread, you can see everything you need to deploy this file.
Regards, Nick
Posted by:
nheim
17 years ago
Hi folks,
in this thread: http://itninja.com/question/migrate-2000-professional-workstation-snmp061
John McFadyen brought up an very important and interesting aspect of this self healing user profile stuff.
The so far proposed way for doing this, has a flaw when we have to self heal a file from the "<UserProfile>\Local Settings\" directory and are using roaming profiles.
Because the "Local Settings" branch of the profile is not going to the server, it won't be available, when a certain user logs in for the first time on a new machine.
It's just not part of the profile which is downloaded from the roaming profiles share. And the package is not going to sense this, because the component key is a
registry key in the users profile. And this regkey is certainly being roamed because it is stored in the ntuser.dat hive file. This means the component key is being roamed and no self heal will be triggered on the new machine.
John suggested, to use a script to work around this.
There is maybe an easier, more elegant way to overcome this:
What about using a registry hive for storing the components key, that is also not being roamed?
Yes, there is actually a quite seldom mentioned registry hive, called 'UsrClass.dat', which is stored in: "<UserProfile>\Local Settings\Application Data\Microsoft\Windows\" which is not part of the roaming profile. This hive is mounted to: "HKEY_CURRENT_USER\Software\Classes". This branch is merged
with "HKEY_LOCAL_MACHINE\SOFTWARE\Classes" and togheter, they make up the virtual "HKEY_CLASSES_ROOT" tree in the registry.
The idea is to create a separate component for the file(s), that have to go to the "<UserProfile>\Local Settings\" directory. And then we create a registry key as the
components key in "HKEY_CURRENT_USER\Software\Classes\Software\<AppName>".
With this, the components key will not being roamed and therefore will not be available, when a certain user logs on to machine, he was never before.
This will trigger the self healing of the package and the 'DuplicateFiles' action will copy the file(s) to its destination.
All this should work in Vista too, as this part of the system hasn't changed much.
Tested this behavior in the las few days and it seems to work. However, i would like you folks to review this and come up with things and aspects, which i may have overlooked.
Regards, Nick
in this thread: http://itninja.com/question/migrate-2000-professional-workstation-snmp061
John McFadyen brought up an very important and interesting aspect of this self healing user profile stuff.
The so far proposed way for doing this, has a flaw when we have to self heal a file from the "<UserProfile>\Local Settings\" directory and are using roaming profiles.
Because the "Local Settings" branch of the profile is not going to the server, it won't be available, when a certain user logs in for the first time on a new machine.
It's just not part of the profile which is downloaded from the roaming profiles share. And the package is not going to sense this, because the component key is a
registry key in the users profile. And this regkey is certainly being roamed because it is stored in the ntuser.dat hive file. This means the component key is being roamed and no self heal will be triggered on the new machine.
John suggested, to use a script to work around this.
There is maybe an easier, more elegant way to overcome this:
What about using a registry hive for storing the components key, that is also not being roamed?
Yes, there is actually a quite seldom mentioned registry hive, called 'UsrClass.dat', which is stored in: "<UserProfile>\Local Settings\Application Data\Microsoft\Windows\" which is not part of the roaming profile. This hive is mounted to: "HKEY_CURRENT_USER\Software\Classes". This branch is merged
with "HKEY_LOCAL_MACHINE\SOFTWARE\Classes" and togheter, they make up the virtual "HKEY_CLASSES_ROOT" tree in the registry.
The idea is to create a separate component for the file(s), that have to go to the "<UserProfile>\Local Settings\" directory. And then we create a registry key as the
components key in "HKEY_CURRENT_USER\Software\Classes\Software\<AppName>".
With this, the components key will not being roamed and therefore will not be available, when a certain user logs on to machine, he was never before.
This will trigger the self healing of the package and the 'DuplicateFiles' action will copy the file(s) to its destination.
All this should work in Vista too, as this part of the system hasn't changed much.
Tested this behavior in the las few days and it seems to work. However, i would like you folks to review this and come up with things and aspects, which i may have overlooked.
Regards, Nick
Posted by:
AngelD
17 years ago
Hi Nick,
Very interesting thought!
I havn't tested your approach but in theory that should work as you expect.
Roaming profiles are most used in TS (terminal server) environment and for mobile users (laptop) as they may be out of office quite often. Have in mind that though "HKCU\Software\Classes" is not roamed by default it can be set to roam..
(In a TS environment users are not allowed to trigger msiexec for any actions such as a repair.)
One side note:
Why it is not recommended to use a file as keypath under user profile is due to failing to find broken components for admin-users as they have access to other user's (local) profile directory. So when windows installer is checking for broken components it will find an existing keypath under another user's profile instead if any and therefore not repair. Yet as this doesn't apply for normal users you could still set a file under user profile as keypath meaning, a repair will occur for any non-admin user.
Very interesting thought!
I havn't tested your approach but in theory that should work as you expect.
Roaming profiles are most used in TS (terminal server) environment and for mobile users (laptop) as they may be out of office quite often. Have in mind that though "HKCU\Software\Classes" is not roamed by default it can be set to roam..
(In a TS environment users are not allowed to trigger msiexec for any actions such as a repair.)
One side note:
Why it is not recommended to use a file as keypath under user profile is due to failing to find broken components for admin-users as they have access to other user's (local) profile directory. So when windows installer is checking for broken components it will find an existing keypath under another user's profile instead if any and therefore not repair. Yet as this doesn't apply for normal users you could still set a file under user profile as keypath meaning, a repair will occur for any non-admin user.
Posted by:
joedown
17 years ago
This works great! Thanks for your help on this. I'll be able to put this to use with other applications. One last question. Is there any offered classes that deal with learning about MSIs? I know Novell and some other groups offer classes on repackaging software but I'd like something a little more specific in dealing with MSIs.
Posted by:
AngelD
17 years ago
Posted by:
joedown
17 years ago
Posted by:
anonymous_9363
17 years ago
http://learn.altiris.com/eCommerce/index.cfm?FuseAction=ShowSKUDesc&SKUID=30&AddPopularity=1¤cy=USD®ion=1
$2K...ouch! El Segundo looks closest for an official course. Maybe there are other, non-Altiris affiliated courses available locally...
$2K...ouch! El Segundo looks closest for an official course. Maybe there are other, non-Altiris affiliated courses available locally...
Posted by:
JubalHarshaw
17 years ago
Posted by:
blueboy
17 years ago
I've been banging on this package for days. This guild has definitely helped bit I can't seem to get rid of the File Associations window notification on first launch. I have made sure to configure QuickTime prior to copying and using the config files as per this awesome guide. Does anyone know how to disable the file association prompt. Thanks.
Posted by:
nheim
17 years ago
Hi blueboy,
load the MSI into ORCA and naviagate to the 'ControlEvent' table.
The dialog is called by the line:
SetupCompleteSuccess ConfigureTypesBtn DoAction Launch_QuickTimeCpl 1 1
You can simply delete it, if you never need it.
Or a better way: set a condition with a public property or the 'UILevel' property.
See: http://msdn2.microsoft.com/en-us/library/aa372096.aspx
Hope, this solves this.
Regards, Nick
load the MSI into ORCA and naviagate to the 'ControlEvent' table.
The dialog is called by the line:
SetupCompleteSuccess ConfigureTypesBtn DoAction Launch_QuickTimeCpl 1 1
You can simply delete it, if you never need it.
Or a better way: set a condition with a public property or the 'UILevel' property.
See: http://msdn2.microsoft.com/en-us/library/aa372096.aspx
Hope, this solves this.
Regards, Nick
Posted by:
Dmention
17 years ago
Hi guys,
I am a complete noob at the msi thing and have just enjoyed the heck outta playing with orca and the sdk on the apple install. I everything went smoothly untill the last step regarding the binary hash. It will create the hash and correct the filesize on the com.apple... file but not the other two. I can't seem to figure out why. Any enlightenment would be helpful I have spent just under 8 hours on this (not just moding the msi but reading the background info).
Thanx,
Richard
I am a complete noob at the msi thing and have just enjoyed the heck outta playing with orca and the sdk on the apple install. I everything went smoothly untill the last step regarding the binary hash. It will create the hash and correct the filesize on the com.apple... file but not the other two. I can't seem to figure out why. Any enlightenment would be helpful I have spent just under 8 hours on this (not just moding the msi but reading the background info).
Thanx,
Richard
Posted by:
alfm
17 years ago
Hello,
i don´t want to disapoint you guys -- but this is much faster and has all the whistles i need:
1. run quicktimeinstaller
2. go to user temp ( dos box -> set -> look at var temp ....)
3. search for quicktime.msi & copy it
4. the changers:
ALLUSERS=1
DESKTOP_SHORTCUTS=0 --> who needs a Q on yer desk
QTTaskRunFlags=0 --> no more tray
QTINFO.BISQTPRO=1 --> no more pro nags
SCHEDULE_ASUW=0 --> no more software update
you find the switches after you open the msi with msidiff ( http://dennisbareis.com/index.htm )
msiexec /i QuickTime.msi /qn ISSETUPDRIVEN=0 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No
[8|] Otherwise i like the thread alot, especialy the self healing function et al[8|]
now to my question, where can i download orca without all the clutter ...
alternatively a link to a download and a "strip" instruction would also be good
i don´t want to disapoint you guys -- but this is much faster and has all the whistles i need:
1. run quicktimeinstaller
2. go to user temp ( dos box -> set -> look at var temp ....)
3. search for quicktime.msi & copy it
4. the changers:
ALLUSERS=1
DESKTOP_SHORTCUTS=0 --> who needs a Q on yer desk
QTTaskRunFlags=0 --> no more tray
QTINFO.BISQTPRO=1 --> no more pro nags
SCHEDULE_ASUW=0 --> no more software update
you find the switches after you open the msi with msidiff ( http://dennisbareis.com/index.htm )
msiexec /i QuickTime.msi /qn ISSETUPDRIVEN=0 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No
[8|] Otherwise i like the thread alot, especialy the self healing function et al[8|]
now to my question, where can i download orca without all the clutter ...
alternatively a link to a download and a "strip" instruction would also be good
Posted by:
nheim
17 years ago
Hi Richard,
have you exactly done this?
Make a copy of the 'Quicktime.msi' file and name it '1.msi'.
Load 1.msi into ORCA and sort the file table after the sequence.
Delete all lines, but the new last 3 (that means: the file table contains only the lines: 'com.apple.QuickTime.plist', 'QTPlayerSession.xml' + 'QuickTime.qtp').
Save it.
Make sure 1.msi and the 3 config files are present in the working directory.
Update 1.msi with this command:
cscript WiFilVer.vbs 1.msi /U /H
Now, 1.msi should contain update Filesizes and Hashes.
Copy them over to 'Quicktime.msi'
That should do the trick.
Regards, Nick
have you exactly done this?
Make a copy of the 'Quicktime.msi' file and name it '1.msi'.
Load 1.msi into ORCA and sort the file table after the sequence.
Delete all lines, but the new last 3 (that means: the file table contains only the lines: 'com.apple.QuickTime.plist', 'QTPlayerSession.xml' + 'QuickTime.qtp').
Save it.
Make sure 1.msi and the 3 config files are present in the working directory.
Update 1.msi with this command:
cscript WiFilVer.vbs 1.msi /U /H
Now, 1.msi should contain update Filesizes and Hashes.
Copy them over to 'Quicktime.msi'
That should do the trick.
Regards, Nick
Posted by:
nheim
17 years ago
Hi Alf,
it's ok, if this is working for you like this.
But this thread is mainly about, how to include the preference files with the MSI.
And this i a little bit more complex then just calling a few properties on the command line...
Here is a link to ORCA 3.1: http://astebner.sts.winisp.net/Tools/Orca.zip
Regards, Nick
it's ok, if this is working for you like this.
But this thread is mainly about, how to include the preference files with the MSI.
And this i a little bit more complex then just calling a few properties on the command line...
Here is a link to ORCA 3.1: http://astebner.sts.winisp.net/Tools/Orca.zip
Regards, Nick
Posted by:
Dmention
17 years ago
That is exactly what I did. I am going to start from scratch today to see if it was a process error on my part. And to alfm the reasoning behind all my efforts has to do with compatibilty with firefox. During our test deploy on our test network we experenced an illegal operation crash when loding a quicktime vid. During research it was found that un-checking the directdraw boxes in the advanced tab (under the directx heading) cured the problem. We really don't need tons of support calls on this so I am trying to cure the problem in deploy rather than with support calls.
I'll let you know how it goes....
BTW, I like alfm's idea too... I have always hated the Q on the desktop thing.... I didn't relize that there was a switch for it...
Thanx,
Richard
I'll let you know how it goes....
BTW, I like alfm's idea too... I have always hated the Q on the desktop thing.... I didn't relize that there was a switch for it...
Thanx,
Richard
Posted by:
Dmention
17 years ago
Posted by:
ccook13
17 years ago
If you have followed up on this, can you provide "cookbook" instructions for Nick's great post on 9/11/07? I would really love to see this.
Thanks
Cliff
Posted by:
Dmention
17 years ago
I am not sure what you mean by "cookbook" but I started with no experence with msi files at all and his instructions are very step by step and I had no trouble following them (thanx again nick). As for the roaming profiles thing, we use roaming here (and I like them) and the initial setup is no worse then the IE "configuring preferences" thing that pops up with a new user. It lasts about 10 sec. (max) and it should not worry you. We have deployed the msi with the special settings for Firefox to our customers. The only thing that I ran into that was not in the guide was the chineese language thing (it would not initially deploy).
Richard
Richard
Posted by:
ccook13
17 years ago
BTW, Apple released Quicktime 7.3 today I think. I'm off to fool around with the install to see if settings files are put in the same places as 7.2.
Posted by:
Dmention
17 years ago
I gotta do one for 7.3 too.... I didn't know it came out... But for firefox compatibility un check the 3 direct draw boxes under "DirectX" in Edit>Preferences>Quicktime Preferences...>Advanced tab. The settings will be saved when you pull the three settings files. Those DirectDraw boxes crashed firefox on most of my dev lab computers. I don't know why and searches on the internet did not give any reasons execpt "just do it". It seems to work ok with out the boxes checked.
Richard
Richard
Posted by:
Dmention
17 years ago
Posted by:
Dmention
17 years ago
Ok, I ran into an error on the last step and i am not sure what it means "CostInitialize failed, returned 3" after running the " cscript WiFilVer.vbs 1.msi /U /H" line... I am going to go back over everything and double check it but any clue might be useful... This is on the 7.3 msi btw, and i am using the exact same instructions as before...
EDIT: execpt i changed the ver from 7,2,0 to 7,3,0
EDIT: Nevermind... I found the error.....
Richard
EDIT: execpt i changed the ver from 7,2,0 to 7,3,0
EDIT: Nevermind... I found the error.....
Richard
Posted by:
Dmention
17 years ago
Posted by:
nheim
17 years ago
Posted by:
MrH
17 years ago
I didn't have the time to dig into this fully, but it looks like they changed the command in their launch conditions that look for newer installations. In 7.2, the condition is called NOT QTINFO.BNEWERQTISINSTALLED. In 7.3, it's NOT BNEWERPRODUCTISINSTALLED. Looks like the older one was using a function of qtinfo.exe. On a whim, when I generated my transform I just renamed the Launch Condition to the one used in 7.2 and it worked like a charm. I'm still very new to this, so I don't know if I'm creating more problems than I'm solving, but so far it's working fine.
Posted by:
nheim
17 years ago
Hi Richard,
this looks kind of weird to me.
The showstopper is this line: 'NOT BNEWERPRODUCTISINSTALLED' in the 'LaunchCondition' table.
The property is set by the CA 'PreventDowngrade'. But it must be triggered by something.
Does this occur on a clean machine too with just QT 7.2.0.240 installed?
If nothing helps, you could try to remove this condition.
Regards, Nick
this looks kind of weird to me.
The showstopper is this line: 'NOT BNEWERPRODUCTISINSTALLED' in the 'LaunchCondition' table.
The property is set by the CA 'PreventDowngrade'. But it must be triggered by something.
Does this occur on a clean machine too with just QT 7.2.0.240 installed?
If nothing helps, you could try to remove this condition.
Regards, Nick
Posted by:
FritzsCorner
17 years ago
Hello,
I have been trolling this thread for the past few days as I have been trying to get Quicktime 7.3 packaged. I have managed to get everything working except for two little annoyances. I have so far been unable to prevent the pop-up message warning that some of the file types assocated with quicktime are currently associated with other applications. Blueboy posted something about this a while back and I tried nheims suggestion to delete the " SetupCompleteSuccess ConfigureTypesBtn DoAction Launch_QuickTimeCpl 1 1" line under the ControlEvent table but that didn't seem to do the trick for me.
I also tried the suggestion from this thread: http://itninja.com/question/quicktime-7.0.2---file-extension-problems
7.3 didn't seem to have the custom action so just to test I set "QuickTimePostInstallMSIProc_immediate" to 4990 and "QuickTimePostInstallMSIProc_deferred" to 4991 either way it didn't seem to make a difference.
I also noticed that under Quicktime Preferences when you go to the MIME settings under the browser tab the box "Notify me if other applications modify these association" is still checked even though I had unchecked it during the initial install.
Any ideas?
Here is a quick bit on info of what I have done so far. (Disclaimer: I am new to packaging so some of my terminology might be wrong.)
I have been trolling this thread for the past few days as I have been trying to get Quicktime 7.3 packaged. I have managed to get everything working except for two little annoyances. I have so far been unable to prevent the pop-up message warning that some of the file types assocated with quicktime are currently associated with other applications. Blueboy posted something about this a while back and I tried nheims suggestion to delete the " SetupCompleteSuccess ConfigureTypesBtn DoAction Launch_QuickTimeCpl 1 1" line under the ControlEvent table but that didn't seem to do the trick for me.
I also tried the suggestion from this thread: http://itninja.com/question/quicktime-7.0.2---file-extension-problems
ORIGINAL: meastaugh1
When you try and add some entries to the Registry table they don't actually get written. After a couple of hours trying to figure it out, I found that one of QT's CustomActions (QTPluginInstaller_QTInstallProc) clears out the registry. I assume this is to remove registry entries created by previous versions of Quicktime. Re-ordering this CustomAction in the InstallExecuteSequence table allows registry entries entered in the Registry table to be created. I sequenced it at 4990, so it's before WriteRegistryValues.
7.3 didn't seem to have the custom action so just to test I set "QuickTimePostInstallMSIProc_immediate" to 4990 and "QuickTimePostInstallMSIProc_deferred" to 4991 either way it didn't seem to make a difference.
I also noticed that under Quicktime Preferences when you go to the MIME settings under the browser tab the box "Notify me if other applications modify these association" is still checked even though I had unchecked it during the initial install.
Any ideas?
Here is a quick bit on info of what I have done so far. (Disclaimer: I am new to packaging so some of my terminology might be wrong.)
- Installed Quicktime and selected all preferences.
- Copied the .qtp file
- Created a Transform for Quicktime.msi
- Created a custom component called QicktimePrefs.qtp
- Added the .qtp file to the component with directory path set to Windows\Profiles\Local Settings\Application Data\Apple Computer\QuickTime
- Added custom registry key to trigger active setup and copy the .qtp file to directory listed above
- Set Active Setup stubpath to execute "msiexec.exe /fu [ProductCode] /qb when a new user logs in.
- Add the HKLM Active X keys AlwaysReclaimAssociations set to 0 and QTTaskRunFlags set to 0
- Set Desktop Shortcuts property to 0 and Schedule_Asuw to 0
- Compiled and installed.
- See Question at beginning of post. ;)
Posted by:
nheim
17 years ago
Posted by:
FritzsCorner
17 years ago
Posted by:
Dmention
17 years ago
Posted by:
FritzsCorner
17 years ago
nheim, I tried your suggestion but still no luck. I noticed that the QT Task bar launched after I made that change so I reverted it back to the original settings and the QT Task bar no longer launched but either way I still get the File association prompt. I am going to dig back in and see what else I can find. I appreciate all your help.
Aaron
Aaron
Posted by:
mreusguy
17 years ago
ORIGINAL: alfm
Hello,
i don´t want to disapoint you guys -- but this is much faster and has all the whistles i need:
1. run quicktimeinstaller
2. go to user temp ( dos box -> set -> look at var temp ....)
3. search for quicktime.msi & copy it
4. the changers:
ALLUSERS=1
DESKTOP_SHORTCUTS=0 --> who needs a Q on yer desk
QTTaskRunFlags=0 --> no more tray
QTINFO.BISQTPRO=1 --> no more pro nags
SCHEDULE_ASUW=0 --> no more software update
you find the switches after you open the msi with msidiff ( http://dennisbareis.com/index.htm )
msiexec /i QuickTime.msi /qn ISSETUPDRIVEN=0 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 REBOOT_REQUIRED=No
[8|] Otherwise i like the thread alot, especialy the self healing function et al[8|]
now to my question, where can i download orca without all the clutter ...
alternatively a link to a download and a "strip" instruction would also be good
I am replying in response to alfm. When I try to modify those properties that he mentions I don't even see the 2 properties that I highlighted in red. Can someone please enlighten me. Do I have to add those properties?
Posted by:
nheim
17 years ago
Posted by:
FritzsCorner
17 years ago
nheim,
As a test, after active setup installs the quicktime.qtp file in the current user profile and before I launch quicktime for the first time, I copy the exact same .qtp file over the top of the one active setup installs. I notice that even though they are supposed to be the same file the one active setup copies over is 11.3k and the original is 10.9k. I then launch Quicktime and everything works as I would like it to. I am not sure what is changing the .qtp file before it is copied over to the current user profile but it sure is annoying. :) As an alternative test I removed the file from the custom component I had made and instead I created a custom action that would execute a wyse script I created to copy the file over right before the install finalized is run. This stopped the file association pop up but when I go into quicktime preferences under the MIME settings it still has the option checked to prompt when associated with other apps, but all my other preferences are still set correctly. Is there some registry key that I am missing that would cause this? I am tearing what little hair I have left out of my head. ;)
Aaron
As a test, after active setup installs the quicktime.qtp file in the current user profile and before I launch quicktime for the first time, I copy the exact same .qtp file over the top of the one active setup installs. I notice that even though they are supposed to be the same file the one active setup copies over is 11.3k and the original is 10.9k. I then launch Quicktime and everything works as I would like it to. I am not sure what is changing the .qtp file before it is copied over to the current user profile but it sure is annoying. :) As an alternative test I removed the file from the custom component I had made and instead I created a custom action that would execute a wyse script I created to copy the file over right before the install finalized is run. This stopped the file association pop up but when I go into quicktime preferences under the MIME settings it still has the option checked to prompt when associated with other apps, but all my other preferences are still set correctly. Is there some registry key that I am missing that would cause this? I am tearing what little hair I have left out of my head. ;)
Aaron
Posted by:
nheim
17 years ago
Hi Aron,
indirectly, you are saying, that your qtp-file is being modified by the 'DuplicateFile' action of Windows Installer during deployment.
Never say never, but this seems a very long shot to me...
Please check everything on a clean system.
Be aware of the overwriting rules, which have been discussed earlier in this thread.
For the registry part: Have you tried to monitor the changes with a tool like ARM (active registry monitor)?
Regards, Nick
indirectly, you are saying, that your qtp-file is being modified by the 'DuplicateFile' action of Windows Installer during deployment.
Never say never, but this seems a very long shot to me...
Please check everything on a clean system.
Be aware of the overwriting rules, which have been discussed earlier in this thread.
For the registry part: Have you tried to monitor the changes with a tool like ARM (active registry monitor)?
Regards, Nick
Posted by:
mundoog
17 years ago
Howdy folks,
I am struggling with the file association popup that comes the first time users launch QuickTime 7.2. I was looking for a regkey to push to the workstation to quiet the prompt so the user does not see it. I have looked through this thread a few times and I'm not seeing the answer to that.
Thanks in advance for any help or suggestion you might have to offer.
I am struggling with the file association popup that comes the first time users launch QuickTime 7.2. I was looking for a regkey to push to the workstation to quiet the prompt so the user does not see it. I have looked through this thread a few times and I'm not seeing the answer to that.
Thanks in advance for any help or suggestion you might have to offer.
Posted by:
FritzsCorner
17 years ago
nheim,
I have been doing all my testing on a clean VMWare snapshot and rollback between each test. I did see your post about ARM earlier and I did try it out but didn't spend much time with it. I should have some time later today to do some tests and let you know what I find out.
Thanks again for all your help!
I have been doing all my testing on a clean VMWare snapshot and rollback between each test. I did see your post about ARM earlier and I did try it out but didn't spend much time with it. I should have some time later today to do some tests and let you know what I find out.
Thanks again for all your help!
Posted by:
nheim
17 years ago
Posted by:
mundoog
17 years ago
Thanks for the reply Nheim.
I was able to find the *.QTP file and that seems to hold the settings for the prompt. I copied that file out and then have set my push to copy that file into a new install. That seems to quell the prompt. However I had it working yesterday but today I re-imaged my test box and pushed my install to the system that includes the files I copied off from yesterday were to the proper locations but when I opened QuickTime the stupid prompt was there. I then re-saved the XML and the QTP files out. Re-imaged my test system, re-pushed the install and it worked then. I am pushing the files to the "%USERPROFILE%\Application Data" or %USERPROFILE%\Local settings\Application Data folders. I saw a referense to the all user's folder. Would that make more sense to push it to the alluser's folder, or what is your thought on a date issue?
Thanks in advance for your help
I was able to find the *.QTP file and that seems to hold the settings for the prompt. I copied that file out and then have set my push to copy that file into a new install. That seems to quell the prompt. However I had it working yesterday but today I re-imaged my test box and pushed my install to the system that includes the files I copied off from yesterday were to the proper locations but when I opened QuickTime the stupid prompt was there. I then re-saved the XML and the QTP files out. Re-imaged my test system, re-pushed the install and it worked then. I am pushing the files to the "%USERPROFILE%\Application Data" or %USERPROFILE%\Local settings\Application Data folders. I saw a referense to the all user's folder. Would that make more sense to push it to the alluser's folder, or what is your thought on a date issue?
Thanks in advance for your help
Posted by:
FritzsCorner
17 years ago
Okay, I finally have success! My problems I had yesterday were completely user error. My custom action that launches right before "Installfinalize" was pointing to my old wyse exe with the wrong qtp file inside. Once I updated the name in the MSI Script and recompiled everything worked as it should. Just in case someone else is having the same problem here is a very breif overview of what I did to get it work. I might have missed a couple steps here but hopefully this is enough to get people pointed in the right direction.
DISCLAIMER: This is just a process that worked for me and may or may not be the best way for others. I claim no responsibility if the process below does not work or breaks something. Some of these steps may be redundant and not needed.
DISCLAIMER: This is just a process that worked for me and may or may not be the best way for others. I claim no responsibility if the process below does not work or breaks something. Some of these steps may be redundant and not needed.
- Installed Quicktime and selected all preferences.
- Copied the .qtp file
- Created a Transform for Quicktime.msi
- Created a custom component called QicktimePrefs.qtp (name can be different)
- Added custom registry key to trigger active setup on new user login. Example: HKCU\Software\T2\Quicktime\[ProductVersion]
- Set Active Setup stubpath to execute "msiexec.exe /fu [ProductCode] /qb when a new user logs in. You can find information on Active Setup here: http://www.etlengineering.com/installer/activesetup.txt
- Add the HKLM Active X keys AlwaysReclaimAssociations set to 2 and QTTaskRunFlags set to 0
- Set Desktop Shortcuts property to 0 and Schedule_Asuw to 0
- Under the InstallExecuteSequence table I did the following: Set the condition for Action "Launch_QTTask" to 0, set the sequence number for "QuickTimePostInstallMSIProc_immediate" to 4490, and set the sequence number for "QuickTimePostInstallMSIProc_deferred" to 4491
- Under the Property table I changed the value for "QT_TRAY_ICON" to #0, changed the value for "SCHEDULE_ASUW" to 0, and changed the value for "DESKTOP_SHORTCUTS" to 0.
- I then created an executable in wisescript to copy the .qtp file to the current user profile. Example below
item: Get Registry Key Value
Variable=APP_DATA
Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Value Name=Local AppData
Flags=00000010
end
item: Set Variable
Variable=QUICKTIME
Value=%APP_DATA%\Apple Computer\QuickTime
end
item: Remark
end
item: Install File
Source=.\QuickTime.qtp
Destination=%QUICKTIME%\QuickTime.qtp
Flags=0000000000100010
end - Updated the transform MSI Script under the Execute Deferred tab to add the following before the "Installfinalize" action:
If NOT Installed OR REINSTALL then
Execute Program From Installation [QuickTime_Prefs] ~ name of wise executable you created
End - Compile and Test
Posted by:
nheim
17 years ago
Hi Ed,
that depends on some parameters:
First of all: You find the correct paths in the first then posts of this thread.
Second: It depends, where you are deploying to XP or Vista.
Third: Apple has changed the path in Version 7.2. Earlier Versions are different.
Print out this thread and save it, you should find almost everything you need in it.
Regards, Nick
that depends on some parameters:
First of all: You find the correct paths in the first then posts of this thread.
Second: It depends, where you are deploying to XP or Vista.
Third: Apple has changed the path in Version 7.2. Earlier Versions are different.
Print out this thread and save it, you should find almost everything you need in it.
Regards, Nick
Posted by:
MrH
17 years ago
I work for a school district and have a pretty unique environment to package for. The biggest challenge is that our students use mandatory roaming profiles, while all of our staff use standard roaming profiles. With over 400 different applications deployed in various combinations to 5000 client machines, I often need to come up with especially creative solutions. Almost every time a new version of QuickTime comes out, I have to rethink our deployment method because Apple often makes so many drastic changes to their distribution. With 7.3, their decision to move the default location of the .qtp to the local settings folder has proven to be a big headache here. For us, since so few users have a need to modify the .qtp once it's been set up properly for our environment, in the end it made the most sense to redirect the location of the .qtp back to all users. There's a HKCU key that allows this: HKEY_CURRENT_USER\Software\Apple Computer, Inc.\QuickTime\LocalUserPreferences\. I set the FolderPath value to C:\Documents and Settings\All Users\Application Data\Apple Computer\QuickTime\ and copy the modified .qtp to that location. Admittedly it's not the most elegant solution and probably won't be the preferred method for most of you, but it works for all my user types and gets this app off my plate for now.
Cheers-
Mike
Cheers-
Mike
Posted by:
FritzsCorner
17 years ago
Posted by:
nheim
17 years ago
Hi Aron,
that's ok. Just be aware, that 'QTPlayerSession.xml' still needs to go to the profile, if you want to deploy it.
That depends on how important you consider the 20 + options in that file.
As i mentioned earlier, i consider the transfer of the preference file to the profile as an important step in the right direction.
If they would transfer this stuff into an XML file or to the registry, that would make things even better.
But the info Mike gave, can be very important for certain scenarios and to maintain backward compatibility
Regards, Nick
that's ok. Just be aware, that 'QTPlayerSession.xml' still needs to go to the profile, if you want to deploy it.
That depends on how important you consider the 20 + options in that file.
As i mentioned earlier, i consider the transfer of the preference file to the profile as an important step in the right direction.
If they would transfer this stuff into an XML file or to the registry, that would make things even better.
But the info Mike gave, can be very important for certain scenarios and to maintain backward compatibility
Regards, Nick
Posted by:
mundoog
17 years ago
Mike and or Nick,
Thanks for sharing your knowledg of QucikTime, I am having trouble getting quicktime to push with the deafault file types intact. I have gotten the File Association prompt to stop comming up but I can't figure out how to keep the File associations to stay intact for the user. I'm using Mikes suggestion, and that was to change the Local User preference in the registry. My push then copies the *.QTP file to C:\Documents and Settings\All Users\Application Data\Apple Computer\QuickTime\ I also am copying the XMl file to Documents and Settings\%userprofile%\Application Data\Apple Computer\QuickTime.
Is there something I'm missing?
Thanks in advance for any help or suggestions you might be able to provide.
Thanks for sharing your knowledg of QucikTime, I am having trouble getting quicktime to push with the deafault file types intact. I have gotten the File Association prompt to stop comming up but I can't figure out how to keep the File associations to stay intact for the user. I'm using Mikes suggestion, and that was to change the Local User preference in the registry. My push then copies the *.QTP file to C:\Documents and Settings\All Users\Application Data\Apple Computer\QuickTime\ I also am copying the XMl file to Documents and Settings\%userprofile%\Application Data\Apple Computer\QuickTime.
Is there something I'm missing?
Thanks in advance for any help or suggestions you might be able to provide.
Posted by:
nheim
17 years ago
Posted by:
mundoog
17 years ago
Posted by:
mundoog
17 years ago
Hi Nick,
I think I'm really close to having QuickTime packaged and ready to push. I am new to the world of Package development as you may be able to tell. Anyway I have Wise Package Studio and Zenworks as a delivery method. I have everything working in my package except the File Associations part. I read through the board a few time and I think my answer may lie in your post where you say this is most likely, done by the very last Sequence in the "InstallExecuteSequence". Set it to a condition, which is never true. I have the MSI pushing in a ZenWorks NAL object and it is silent. I have pushed it several time to different restricted test user's on my test box. It seems as though when I push it to the test user I used to create the known good QTP and XML files it seems to work fine. But If I install it for a different user the File Associations is empty, nothing is set. I opened the MSI with Orca and found the 'InstallExecuteSequesnce' Table but the is where I get lost. I'm hoping you might be able to elaborate on that part a bit more for me.
Posted by:
FritzsCorner
17 years ago
Mundoog,
Did you see my post above with the process I used? I was having the exact same issue and using that process I was able to get it working. One thing I forgot to include is the QT_Task gets put into the Runonce in the registry causing the taskbar icon to pop up. I removed this as well and so far so good.
Aaron
Did you see my post above with the process I used? I was having the exact same issue and using that process I was able to get it working. One thing I forgot to include is the QT_Task gets put into the Runonce in the registry causing the taskbar icon to pop up. I removed this as well and so far so good.
Aaron
Posted by:
mundoog
17 years ago
Aaron,
If you are referring to Post 30 with 13 steps. I'm not that advanced yet. All I'm doing it pushing apple's MSI unchanged and then scripting the changes to the registry and copying the files over. It seems to work for the user that I used to capture the xml and qtp file but if I push it to a different user then I see there are now files assoc set.
So at this point I'm wondering what the exact steps might be to successfully bring over the files assoc.
Sorry for my lack of knowledg, and do apprecciate any help you might be able to offer.
If you are referring to Post 30 with 13 steps. I'm not that advanced yet. All I'm doing it pushing apple's MSI unchanged and then scripting the changes to the registry and copying the files over. It seems to work for the user that I used to capture the xml and qtp file but if I push it to a different user then I see there are now files assoc set.
So at this point I'm wondering what the exact steps might be to successfully bring over the files assoc.
Sorry for my lack of knowledg, and do apprecciate any help you might be able to offer.
Posted by:
mundoog
17 years ago
I'm a little closer to havign this figured out. Our user's have restricted access to the workstation. The file association is blank if the user is restricted but If I grant them local Admin rights they have file preferences. If I then remove them from the local admin group their file assiciations are gone. So it's a rights issue at this point but I'm, not sure to what?
Any clues
Any clues
Posted by:
AB
17 years ago
QT needs to write to reg keys in order to 'steal' file association from it's rivals...
The following is not exhaustive and is not a definitive answer to your issue...
Use Regmon to look for AccDenied in HKClasses root...
‘Users:Full Control’ on the following keys:
"CLASSES_ROOT\QuickTime.sdp"
"CLASSES_ROOT\QuickTime.sd2"
"CLASSES_ROOT\QuickTime.qtl"
"CLASSES_ROOT\QuickTime.qtif"
"CLASSES_ROOT\QuickTime.qti"
"CLASSES_ROOT\QuickTime.qt"
"CLASSES_ROOT\QuickTime.qhtm"
"CLASSES_ROOT\QuickTime.qht"
"CLASSES_ROOT\QuickTime.pntg"
"CLASSES_ROOT\QuickTime.pnt"
"CLASSES_ROOT\QuickTime.pict"
"CLASSES_ROOT\QuickTime.pic"
"CLASSES_ROOT\QuickTime.pct"
"CLASSES_ROOT\QuickTime.mqv"
"CLASSES_ROOT\QuickTime.mp4"
"CLASSES_ROOT\QuickTime.mov"
"CLASSES_ROOT\QuickTime.mac"
"CLASSES_ROOT\QuickTime.gsm"
"CLASSES_ROOT\QuickTime.dv"
"CLASSES_ROOT\QuickTime.dif"
"CLASSES_ROOT\QuickTime.cdda"
"CLASSES_ROOT\QuickTime.caf"
"CLASSES_ROOT\QuickTime.amc"
"CLASSES_ROOT\QuickTime.aiff"
"CLASSES_ROOT\QuickTime.aifc"
"CLASSES_ROOT\QuickTime.aif"
"CLASSES_ROOT\QuickTime.adts"
"CLASSES_ROOT\QuickTime.aac"
"CLASSES_ROOT\QuickTime.3gpp"
"CLASSES_ROOT\QuickTime.3gp2"
"CLASSES_ROOT\QuickTime.3gp"
"CLASSES_ROOT\QuickTime.3g2"
"CLASSES_ROOT\MIME\Database"
"CLASSES_ROOT\CLSID\{4063BE15-3B08-470D-A0D5-B37161CFFD69}"
"CLASSES_ROOT\.sdp"
"CLASSES_ROOT\.sd2"
"CLASSES_ROOT\.qtl"
"CLASSES_ROOT\.qtif"
"CLASSES_ROOT\.qti"
"CLASSES_ROOT\.qt"
"CLASSES_ROOT\.qhtm"
"CLASSES_ROOT\.qht"
"CLASSES_ROOT\.pntg"
"CLASSES_ROOT\.pnt"
"CLASSES_ROOT\.pict"
"CLASSES_ROOT\.pic"
"CLASSES_ROOT\.pct"
"CLASSES_ROOT\.mqv"
"CLASSES_ROOT\.mp4"
"CLASSES_ROOT\.mov"
"CLASSES_ROOT\.mac"
"CLASSES_ROOT\.gsm"
"CLASSES_ROOT\.dv"
"CLASSES_ROOT\.dif"
"CLASSES_ROOT\.cdda"
"CLASSES_ROOT\.caf"
"CLASSES_ROOT\.amc"
"CLASSES_ROOT\.aiff"
"CLASSES_ROOT\.aifc"
"CLASSES_ROOT\.aif"
"CLASSES_ROOT\.adts"
"CLASSES_ROOT\.aac"
"CLASSES_ROOT\.3gpp"
"CLASSES_ROOT\.3gp2"
"CLASSES_ROOT\.3gp"
"CLASSES_ROOT\.3g2"
"CLASSES_ROOT\QuickTime.QuickTime"
Enjoy...
Regards,
Al
The following is not exhaustive and is not a definitive answer to your issue...
Use Regmon to look for AccDenied in HKClasses root...
‘Users:Full Control’ on the following keys:
"CLASSES_ROOT\QuickTime.sdp"
"CLASSES_ROOT\QuickTime.sd2"
"CLASSES_ROOT\QuickTime.qtl"
"CLASSES_ROOT\QuickTime.qtif"
"CLASSES_ROOT\QuickTime.qti"
"CLASSES_ROOT\QuickTime.qt"
"CLASSES_ROOT\QuickTime.qhtm"
"CLASSES_ROOT\QuickTime.qht"
"CLASSES_ROOT\QuickTime.pntg"
"CLASSES_ROOT\QuickTime.pnt"
"CLASSES_ROOT\QuickTime.pict"
"CLASSES_ROOT\QuickTime.pic"
"CLASSES_ROOT\QuickTime.pct"
"CLASSES_ROOT\QuickTime.mqv"
"CLASSES_ROOT\QuickTime.mp4"
"CLASSES_ROOT\QuickTime.mov"
"CLASSES_ROOT\QuickTime.mac"
"CLASSES_ROOT\QuickTime.gsm"
"CLASSES_ROOT\QuickTime.dv"
"CLASSES_ROOT\QuickTime.dif"
"CLASSES_ROOT\QuickTime.cdda"
"CLASSES_ROOT\QuickTime.caf"
"CLASSES_ROOT\QuickTime.amc"
"CLASSES_ROOT\QuickTime.aiff"
"CLASSES_ROOT\QuickTime.aifc"
"CLASSES_ROOT\QuickTime.aif"
"CLASSES_ROOT\QuickTime.adts"
"CLASSES_ROOT\QuickTime.aac"
"CLASSES_ROOT\QuickTime.3gpp"
"CLASSES_ROOT\QuickTime.3gp2"
"CLASSES_ROOT\QuickTime.3gp"
"CLASSES_ROOT\QuickTime.3g2"
"CLASSES_ROOT\MIME\Database"
"CLASSES_ROOT\CLSID\{4063BE15-3B08-470D-A0D5-B37161CFFD69}"
"CLASSES_ROOT\.sdp"
"CLASSES_ROOT\.sd2"
"CLASSES_ROOT\.qtl"
"CLASSES_ROOT\.qtif"
"CLASSES_ROOT\.qti"
"CLASSES_ROOT\.qt"
"CLASSES_ROOT\.qhtm"
"CLASSES_ROOT\.qht"
"CLASSES_ROOT\.pntg"
"CLASSES_ROOT\.pnt"
"CLASSES_ROOT\.pict"
"CLASSES_ROOT\.pic"
"CLASSES_ROOT\.pct"
"CLASSES_ROOT\.mqv"
"CLASSES_ROOT\.mp4"
"CLASSES_ROOT\.mov"
"CLASSES_ROOT\.mac"
"CLASSES_ROOT\.gsm"
"CLASSES_ROOT\.dv"
"CLASSES_ROOT\.dif"
"CLASSES_ROOT\.cdda"
"CLASSES_ROOT\.caf"
"CLASSES_ROOT\.amc"
"CLASSES_ROOT\.aiff"
"CLASSES_ROOT\.aifc"
"CLASSES_ROOT\.aif"
"CLASSES_ROOT\.adts"
"CLASSES_ROOT\.aac"
"CLASSES_ROOT\.3gpp"
"CLASSES_ROOT\.3gp2"
"CLASSES_ROOT\.3gp"
"CLASSES_ROOT\.3g2"
"CLASSES_ROOT\QuickTime.QuickTime"
Enjoy...
Regards,
Al
Posted by:
nheim
17 years ago
Hi folks,
i think this shouldn't be a problem at all!
First of all: We deploy QT for more than 3 years now to locked down machines and never hat issues with assocs.
Standard users can override all associations in their profile.
the HKCR branch is a merge from 'HKLM\SOFTWARE\Classes' and 'HKCU\SOFTWARE\Classes'.
Regards, Nick
i think this shouldn't be a problem at all!
First of all: We deploy QT for more than 3 years now to locked down machines and never hat issues with assocs.
Standard users can override all associations in their profile.
the HKCR branch is a merge from 'HKLM\SOFTWARE\Classes' and 'HKCU\SOFTWARE\Classes'.
Regards, Nick
Posted by:
ccook13
16 years ago
The one issue I have been unable to resolve involves MIME file types, which appeared to be controlled by the quicktime.qtp settings file. No matter what I do I have been unable to "turn off" the check box that tell QT 7.3 to notify the user if other programs attempt to change MIME settings (ie checkbox that says "notify me if other applications modify these settings"). For a standard user (ie not an administrator of the PC) if I uncheck the box, press APPLY to save the change then close the settings, when I reopen the settings window the box is checked off again. By monitoring the time stamp, I can see that quicktime.qtp is updated as soon as I reopen the application. I tried monitoring the registry and could not find a key that was responsible. Several times I tried updating the MSI and transform using the steps posted by Nick but could not find a way to get this to work. Repeating that process several time resolved the other issues reported above related to file associations but not this one. (I even was able to resolve the same problem that affected the file association tab in QT settings.)
What I have now works well enough for me but I find that this is one stubborn application to get to work the way I want.
Cliff
Posted by:
nheim
16 years ago
Hi folks,
finally got the time to down track the annoying error, that the 'Quicktime.qtp' file is somehow being changed after it is copied to the profile.
The problem is the 'QuickTimePostInstallMSIProc_deferred' Custom Action in the 'InstallExecuteSequence'.
This CA writes a default 'Quicktime.qtp' file or if it is already there, it writes some default value to it.
This explains, why several people (including myself) experienced a partly change of their well crafted 'Quicktime.qtp' settings file.
To overcome this, one could simply delete this CA. But this is no real option, because it writes the file associations to the registry.
An other possibility would be, to copy the file with the DuplicateFile action and then set the 'Read Only' Bit.
A further one could use a own CA and copy this file as the very last action before 'InstallFinalize' and overwrite the existing file.
Hope this enlighten the things a bit and creates some ideas...
A lot easier approach would of course be, if Apple would provide the deployment people with this things implemented as admin options!
Regards, Nick
finally got the time to down track the annoying error, that the 'Quicktime.qtp' file is somehow being changed after it is copied to the profile.
The problem is the 'QuickTimePostInstallMSIProc_deferred' Custom Action in the 'InstallExecuteSequence'.
This CA writes a default 'Quicktime.qtp' file or if it is already there, it writes some default value to it.
This explains, why several people (including myself) experienced a partly change of their well crafted 'Quicktime.qtp' settings file.
To overcome this, one could simply delete this CA. But this is no real option, because it writes the file associations to the registry.
An other possibility would be, to copy the file with the DuplicateFile action and then set the 'Read Only' Bit.
A further one could use a own CA and copy this file as the very last action before 'InstallFinalize' and overwrite the existing file.
Hope this enlighten the things a bit and creates some ideas...
A lot easier approach would of course be, if Apple would provide the deployment people with this things implemented as admin options!
Regards, Nick
Posted by:
Dmention
16 years ago
Ok,
Apple screwed up again... There are major security holes in QT 7.3 (go figure...). So Apple released 7.3.1.. Great we all know how to do this! Following all the previous steps on the MSI for 7.3.1 I ran into an error:
Event Type: Error
Event Source: MsiInstaller
Event Category: None
Event ID: 10005
Date: 12/18/2007
Time: 10:05:02 AM
User: richard
Computer: LEX
Description:
Product: QuickTime -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727. The arguments are: QuickTime, ,
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 7b 45 30 44 35 31 33 39 {E0D5139
0008: 34 2d 31 44 34 35 2d 34 4-1D45-4
0010: 36 30 41 2d 42 36 32 44 60A-B62D
0018: 2d 33 38 33 42 43 34 46 -383BC4F
0020: 38 42 33 33 35 7d 8B335}
Let me know.... Maybe we should update the topic or start a new thread with some of the info revised... The answer to fix this is just as important as why this happened so I can learn.
Thanx Guys,
Richard
Apple screwed up again... There are major security holes in QT 7.3 (go figure...). So Apple released 7.3.1.. Great we all know how to do this! Following all the previous steps on the MSI for 7.3.1 I ran into an error:
Event Type: Error
Event Source: MsiInstaller
Event Category: None
Event ID: 10005
Date: 12/18/2007
Time: 10:05:02 AM
User: richard
Computer: LEX
Description:
Product: QuickTime -- The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2727. The arguments are: QuickTime, ,
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 7b 45 30 44 35 31 33 39 {E0D5139
0008: 34 2d 31 44 34 35 2d 34 4-1D45-4
0010: 36 30 41 2d 42 36 32 44 60A-B62D
0018: 2d 33 38 33 42 43 34 46 -383BC4F
0020: 38 42 33 33 35 7d 8B335}
Let me know.... Maybe we should update the topic or start a new thread with some of the info revised... The answer to fix this is just as important as why this happened so I can learn.
Thanx Guys,
Richard
Posted by:
nheim
16 years ago
Posted by:
Dmention
16 years ago
Ok,
I checked the log and saw the error but I didn't see exactly which one failed. I may be missing something... Link... http://www.darkstarmediallc.com/log1.zip
MSI - http://www.darkstarmediallc.com/quicktime.zip - extract from archive
Have a look...
Richard
I checked the log and saw the error but I didn't see exactly which one failed. I may be missing something... Link... http://www.darkstarmediallc.com/log1.zip
MSI - http://www.darkstarmediallc.com/quicktime.zip - extract from archive
Have a look...
Richard
Posted by:
AngelD
16 years ago
Posted by:
Dmention
16 years ago
According to what i am reading (and I may be wrong) the line
MSI (s) (70:A0) [10:05:00:170]: Dir (target): Key: QuickTimeInstallFolder , Object: C:\Program Files\QuickTime\
in the log is the quicktime folder so I am confused where the error is coming from... Again I am new at readin these log files but I understand enough to be dangerous.
Richard
MSI (s) (70:A0) [10:05:00:170]: Dir (target): Key: QuickTimeInstallFolder , Object: C:\Program Files\QuickTime\
in the log is the quicktime folder so I am confused where the error is coming from... Again I am new at readin these log files but I understand enough to be dangerous.
Richard
Posted by:
AngelD
16 years ago
Hi Richard,
The error occur while the InstallValidate action is executed.
I took a quick look in the MSI and there are two components referring to the QuickTime directory (Component table, Directory_ column).
So as the error message apply: Error 2727: The directory entry 'QuickTime' does not exist in the Directory table, the Directory table lacks the QuickTime directory entry.
The error occur while the InstallValidate action is executed.
I took a quick look in the MSI and there are two components referring to the QuickTime directory (Component table, Directory_ column).
So as the error message apply: Error 2727: The directory entry 'QuickTime' does not exist in the Directory table, the Directory table lacks the QuickTime directory entry.
Posted by:
AngelD
16 years ago
Oh and a quick ICE03 validation would have given you these two errors:
ICE03 ERROR Not a valid foreign key; Table: Component, Column: Directory_, Key(s): UserSettingsRepair
ICE03 ERROR Not a valid foreign key; Table: Component, Column: Directory_, Key(s): UserSettingsRepairVista
As both the UserSettingsRepair and UserSettingsRepairVista components only contain registry entries and the keypath is set for these registry entries (RegUser1 / RegUser1Vista); also the msidbComponentAttributesRegistryKeyPath attribute bit is set for these components you should be able to just change the Directory_ column in the Component table for these components to TARGETDIR.
ICE03 ERROR Not a valid foreign key; Table: Component, Column: Directory_, Key(s): UserSettingsRepair
ICE03 ERROR Not a valid foreign key; Table: Component, Column: Directory_, Key(s): UserSettingsRepairVista
As both the UserSettingsRepair and UserSettingsRepairVista components only contain registry entries and the keypath is set for these registry entries (RegUser1 / RegUser1Vista); also the msidbComponentAttributesRegistryKeyPath attribute bit is set for these components you should be able to just change the Directory_ column in the Component table for these components to TARGETDIR.
Posted by:
Dmention
16 years ago
Posted by:
AngelD
16 years ago
Richard,
You can get the "The Definitive Guide to Windows Installer Technology" ebook for free at http://nexus.realtimepublishers.com/DGWITSA.htm
This is a good starting point.
You can get the "The Definitive Guide to Windows Installer Technology" ebook for free at http://nexus.realtimepublishers.com/DGWITSA.htm
This is a good starting point.
Posted by:
ajlande
16 years ago
Hi,
I have been struggling with QuickTime 7.3.1 the last days, and have tried to follow the advices given in this thread, especially the recipe by FritzsCorner in post #79, without success. (I am not sure if FritzsCorner was packaging version 7.2 or 7.3 in that post.)
The way which now seem to work for me (although not done with the testing yet), is principally the same, but I have moved the WiseScript that copies the settings files (QuickTime.qtp and QTPlayerSession.xml) out of the MSI package. That is - I run the standalone WiseScript .EXE after installation of the MSI, and also have the Active Setup StubPath pointing to this .EXE. It seems to give the desired result, and I don't risk that the MSI tries to patch the .qtp file with default values, like we have experienced.
Right now I don't see any drawbacks with doing it this way, but perhaps some will show up, or other people here can think of some... Anyway I think this is simpler to implement than making a lot of changes to the MSI via an MST transform (I also specify the variables like DESKTOP_SHORTCUTS=0 on the msiexec command line).
I have been struggling with QuickTime 7.3.1 the last days, and have tried to follow the advices given in this thread, especially the recipe by FritzsCorner in post #79, without success. (I am not sure if FritzsCorner was packaging version 7.2 or 7.3 in that post.)
The way which now seem to work for me (although not done with the testing yet), is principally the same, but I have moved the WiseScript that copies the settings files (QuickTime.qtp and QTPlayerSession.xml) out of the MSI package. That is - I run the standalone WiseScript .EXE after installation of the MSI, and also have the Active Setup StubPath pointing to this .EXE. It seems to give the desired result, and I don't risk that the MSI tries to patch the .qtp file with default values, like we have experienced.
Right now I don't see any drawbacks with doing it this way, but perhaps some will show up, or other people here can think of some... Anyway I think this is simpler to implement than making a lot of changes to the MSI via an MST transform (I also specify the variables like DESKTOP_SHORTCUTS=0 on the msiexec command line).
Posted by:
char1iecha1k
15 years ago
I know this thread is a little old however post #19 nheim wrote still works for Quicktime v7.62.14.0. However I think this can be improved slightly (it seems to work for me)
Instead of Nesting the QuickTimeEssentials component under the new UserSettings component it would be better to have them as siblings under the root. Without changing this when the Activesetup is run the QuickTimeEssentials component is also invoked. With REINSTALLMODE=up setting I dont think it does anything else other than take longer to process. If QuickTimeEssentials isnt nested under UserSettings then when the Active setup runs with this setting REINSTALL=UserSettings it wont be reinstalling QuickTimeEssential, just UserSettings which of course copies the duplicate files.
IE this line
QuickTimeEssentials UserSettings QuickTime Essentials 2 1 INSTALLDIR 16
should read
QuickTimeEssentials QuickTime Essentials 2 1 INSTALLDIR 16
Also it appears that the com.apple.Quictime.plist component is not attached to a feature so a new line in the FeatureComponent table should read like so
QuickTimeEssentials com.apple.QuickTime.plist
Instead of Nesting the QuickTimeEssentials component under the new UserSettings component it would be better to have them as siblings under the root. Without changing this when the Activesetup is run the QuickTimeEssentials component is also invoked. With REINSTALLMODE=up setting I dont think it does anything else other than take longer to process. If QuickTimeEssentials isnt nested under UserSettings then when the Active setup runs with this setting REINSTALL=UserSettings it wont be reinstalling QuickTimeEssential, just UserSettings which of course copies the duplicate files.
IE this line
QuickTimeEssentials UserSettings QuickTime Essentials 2 1 INSTALLDIR 16
should read
QuickTimeEssentials QuickTime Essentials 2 1 INSTALLDIR 16
Also it appears that the com.apple.Quictime.plist component is not attached to a feature so a new line in the FeatureComponent table should read like so
QuickTimeEssentials com.apple.QuickTime.plist
Posted by:
Nico_nz
15 years ago
I have followed Mr H's advice on this post and whilst QuickTime recognises the QuickTime.qtp file in the all users folder, I cannot get mov files to open as default with QuickTime. Also QuickTime does not show up on the Open With List. When I go into Edit-Preferences the property is set to .mov only. Ive noticed the checked option for video has a slight grey tinge tho it is still ticked.
Any Ideas?
Any Ideas?
Posted by:
devraj
13 years ago
Hi All,
Please help in sorting out the problem with Apple Quick Time Installer.
while installing manually there appears two dialogue boxes(Install Desktop Shortcut and Automatically Update ) which i have to un check and then go for installation.
The problem is, soon after installation of msi the properties ChkOptInstShortcuts and ChkOptInstASU gets deleted, Even though i use to set these manually in Property table its not working.. i tried all the possible ways like custom action, control event table... but still the issue has not been solved .. it will be help full if some one replies with the solution
Please help in sorting out the problem with Apple Quick Time Installer.
while installing manually there appears two dialogue boxes(Install Desktop Shortcut and Automatically Update ) which i have to un check and then go for installation.
The problem is, soon after installation of msi the properties ChkOptInstShortcuts and ChkOptInstASU gets deleted, Even though i use to set these manually in Property table its not working.. i tried all the possible ways like custom action, control event table... but still the issue has not been solved .. it will be help full if some one replies with the solution
Posted by:
su.deep
13 years ago
Posted by:
nheim
13 years ago
Posted by:
justsomeguy
12 years ago
Posted by:
jmcfadyen
17 years ago
Posted by:
ianatkin
17 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.