Quicktime 7.5 turning off updates - Help
Has anyone been successful in turning this off for version 7.5? I saw a few notes on the package kb last week but it looks like they are gone now...either way I wasn't able to get it to work yet...
Thanks!
J.
Set objWMIService = GetObject("winmgmts://./root/cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'firefox.exe' or Name = 'iexplore.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
strPath = Wscript.ScriptFullName
Set objFile = objFSO.GetFile(strPath)
strFolder = objFSO.GetParentFolderName(objFile)
set WshShell = CreateObject("WScript.Shell")
'Wscript.Echo "msiexec /i " & strFolder & "\quicktime.msi /qb ALLUSERS=2 REBOOT=" & Chr(34) & "ReallySuppress" & Chr(34)
WshShell.Run "msiexec /i " & strFolder & "\quicktime.msi /qn ALLUSERS=2 REBOOT=" & Chr(34) & "ReallySuppress" & Chr(34),0,True
Wscript.Sleep(5000)
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'qttask.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
objReg.CreateKey HKEY_LOCAL_MACHINE, strKeyPath
ValueName = "QuickTime Task"
objReg.DeleteValue HKEY_LOCAL_MACHINE, strKeyPath, ValueName
strKeyPath = "SOFTWARE\Apple Computer, Inc.\QuickTime\ActiveX"
ValueName = "QTTaskRunFlags"
dwValue = 2
objReg.SetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, ValueName, dwValue
WshShell.Run strFolder & "\DoCmdForAllUsers.bat del .\applic~1\micros~1\intern~1\quickl~1\quick*.lnk",0,True
WshShell.Run strFolder & "\DoCmdForAllUsers.bat mkdir "".\application data\Apple Computer""",0,True
WshShell.Run strFolder & "\DoCmdForAllUsers.bat mkdir "".\application data\Apple Computer\QuickTime""",0,True
WshShell.Run strFolder & "\DoCmdForAllUsers.bat copy /y " & strfolder & "\QTPlayerSession.xml "".\application data\apple computer\quicktime\QTPlayerSession.xml""",0,True
on error resume next
objFSO.CopyFile strFolder & "\QuickTime.qtp", "C:\Documents and Settings\All Users\Application Data\Apple Computer\QuickTime\QuickTime.qtp", True
objFSO.DeleteFile "C:\Documents and Settings\All Users\Start Menu\Programs\QuickTime Player.lnk", True
objFSO.MoveFile "C:\Documents and Settings\All Users\Desktop\QuickTime Player.lnk", "C:\Documents and Settings\All Users\Start Menu\Programs\QuickTime Player.lnk"
objFSO.DeleteFolder "C:\Documents and Settings\All Users\Start Menu\Programs\QuickTime"
objFSO.CreateFolder "C:\Documents and Settings\installer\Application Data\Apple Computer"
objFSO.CreateFolder "C:\Documents and Settings\installer\Application Data\Apple Computer\QuickTime"
Answers (26)
certainly, i can't answer the the bad behavior of a lot of big SW vendors when it comes to mass deployment.
I sometimes tell the people, that good SW-engineers are hard to find and they don't "waste" them on installer development... ;-)
However, a workaround could be to just remove the dialog resource from "Quicktime.cpl"
Load it into ResHacker and remove all entries in the dialog resource "109".
Then you have to make sure, that every user gets a preconfigured "QuickTime.qtp".
There are exact step by step guides in this forum to do this.
Hope this gives you some more ideas.
Regards, Nick
I'm not sure if this might help anyone, but there is a HKCU registry key within the path:-
HKCU\Software\Apple Computer, Inc.\QuickTime\LocalUserPreferences
The value contained here is a file path to the .QTP file that QuickTime uses for it's settings.
This could help you prevent having to use the copying of multiple .QTP files to each users profile, by creating one wherever you like, perhaps in the "All Users" profile, and then using the HKCU registry value to point each user at this .QTP file.
For me personally the problem I'm having is even though I've customised the QTP file, if I overwrite it after initial delivery, when it loads, the settings tab does not reflect the new settings!!!! I havn't noticed anyone else with the same problem!!!
Make sure quicktime.qtp is the keypath of its component.
Make sure the shortcut and any file assocation related to QT are advertised.
When the user launch QT in somehow through the shortcut or file extension a repair will occur and install the qtp file before the application is started.
How do you make sure quicktime.qtp is in the keypath of its component? I'm assuming I'll need to edit the msi with something like orca? I currently use Landesk for deployment/package building not sure if that helps with any packaging features or not...Thanks!
Here it is:
Option Explicit
Dim WshShell, objFSO, SystemDrive, AllUsersProgramsPath, AllUsersDesktopPath
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
SystemDrive = WshShell.ExpandEnvironmentStrings("%Systemdrive%")
'AllUsersProgramsPath = SystemDrive & "\Documents and Settings\All Users\Start Menu\Programs"
'AllUsersDesktopPath = SystemDrive & "\Documents and Settings\All Users\Desktop"
SetPreferenceFiles
' Copies a shortcut to iTunes to prevent the MSI installer from being invoked for each user - which generates the desktop and Start menu icons again.
'If objFSO.FileExists ("\\<servername>\<sharename>\iTunes\iTunes.lnk") Then
'objFSO.CopyFile ("\\<servername>\<sharename>\iTunes\iTunes.lnk"), (AllUsersProgramsPath & "\Accessories\Entertainment\iTunes.lnk"), True
'End If
'Wscript.Quit
' SUBROUTINES ARE SHOWN BELOW
Sub SetPreferenceFiles
' Sets the needed preference files, creating the folder structure if it does not already exist.
Dim Subfolder, UserPaths
On Error Resume Next
' THIS SECTION DETERMINES WHICH FOLDERS TO COPY TO THEN CREATES APPLE FOLDERS IF THEY DO NOT EXSIST
Set UserPaths = objFSO.GetFolder(SystemDrive & "\Documents and Settings\").Subfolders
For Each Subfolder in UserPaths
If Subfolder = (SystemDrive & "\Documents and Settings\LocalService") Then
' Does nothing.
Else
If Subfolder = (SystemDrive & "\Documents and Settings\NetworkService") Then
' Does nothing.
Else
If Subfolder = (SystemDrive & "\Documents and Settings\All Users") Then
' Does nothing.
Else
If Not objFSO.FolderExists (Subfolder & "\Local Settings\Application Data\Apple Computer") Then
objFSO.CreateFolder (Subfolder & "\Local Settings\Application Data\Apple Computer")
End If
If Not objFSO.FolderExists (Subfolder & "\Local Settings\Application Data\Apple Computer\QuickTime") Then
objFSO.CreateFolder (Subfolder & "\Local Settings\Application Data\Apple Computer\QuickTime")
End If
If Not objFSO.FolderExists (Subfolder & "\Application Data\Apple Computer") Then
objFSO.CreateFolder (Subfolder & "\Application Data\Apple Computer")
End If
If Not objFSO.FolderExists (Subfolder & "\Application Data\Apple Computer\QuickTime") Then
objFSO.CreateFolder (Subfolder & "\Application Data\Apple Computer\QuickTime")
End If
'THIS SECTION COPIES THE PREF FILES
'LOCAL SETTINGS
' This file disables automatic updates.
If objFSO.FileExists ("\\<servername>\<sharename>\Quicktime\7.50.61.0\QuickTime.qtp") Then
If objFSO.FileExists (Subfolder & "\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp") Then
objFSO.CopyFile (Subfolder & "\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp"), (Subfolder & "\Local Settings\Application Data\Apple Computer\QuickTime\OLDQuickTime.qtp"),
True
End If
objFSO.CopyFile "\\<servername>\<sharename>\Quicktime\7.50.61.0\QuickTime.qtp", (Subfolder & "\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp"), True
End If
'APPLICATION DATA
' This file contains the additional preference settings.
If objFSO.FileExists ("\\<servername>\<sharename>\Quicktime\7.50.61.0\QTPlayerSession.xml") Then
If objFSO.FileExists (Subfolder & "\Application Data\Apple Computer\QuickTime\QTPlayerSession.xml") Then
objFSO.CopyFile (Subfolder & "\Application Data\Apple Computer\QuickTime\QTPlayerSession.xml"), (Subfolder & "\Application Data\Apple Computer\QuickTime\OLDQTPlayerSession.xml"), True
End If
objFSO.CopyFile "\\<servername>\<sharename>\Quicktime\7.50.61.0\QTPlayerSession.xml", (Subfolder & "\Application Data\Apple Computer\QuickTime\QTPlayerSession.xml"), True
End If
End If
End If
End If
Next
End Sub
And that's it. You will probably only need to use the section for copying the preference file, but the other sections may be useful too. Please let me know if this is helpful or if you have any questions.
Have a nice day!
ORIGINAL: PackageitupIt works *NOW* but how will the app self-heal if required?
Thank you!!!! This is EXACTLY what I was looking for, and it works great!
You should always avoid hacks if at all possible and, in this case, it is eminently avoidable. The answer to your question about how to set a component's key path will be in your authoring tool's help, on Google, via AppDeploy's 'Search'....
Thanks for pointing that out. However, we have been sending out jobs using this script for a couple years now and have never seen a problem with a broken installation. There are about 150 PC's in our office, so it seems that if there were an issue we would have seen it by now. I hope that this doesn't become an issue for you, Packageitup, but if it does VBScab's post should help you out.
Thanks and have a nice day! [:)]
THE BIG question is.....
Is there a way to actually disable the Update button so there is not any options to update. We have the update site blocked thru the proxy.. but it would be great if the button could be "greyed" out and not active at all.....
Regards all!!!
Mike
FRB Dallas
Why is it so hard for Apple, Adobe, and, other "problem" vendors to understand business needs?
Have you found anything out yet? I am looking for a way to disable the update mechanism through command switches passed to the msi. I would prefer that to having to deploy qtp and/or xml files. Even a registry setting would be preferable. I would even settle for an ini file ... at least then I could redirect it to the registry.
Paul
[HKEY_LOCAL_MACHINE\SOFTWARE\Apple Computer, Inc.\QuickTime\SystemPreferences]
"FolderPath"="C:\\Documents and Settings\\All Users\\Application Data\\Apple Computer\\QuickTime\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\Apple Computer, Inc.\QuickTime\LocalUserPreferences]
"FolderPath"="C:\\Documents and Settings\\All Users\\Application Data\\Apple Computer\\QuickTime\\"
Note: Make sure the install package is explicitly pointing to the path instead of a variable for the "Documents and Settings" folder.
We have used the active setup method once and it was pretty successful. The last deployment of 7.4.5 has been difficult because we brought in a Wise packager consultant who created it and he has since been let go. So now we are back to possibly doing the Active Setup method. I will have to figure out how I did that in the past, or try to figure out what the guy did in Wise to make it work with 7.4.5.
I keep hoping Apple will see how every one struggles with this product and actually do something right and fix it. But again, its free. I have actually been working toward getting our streaming media group to go back to Media Player. It is on all our machines and is easily patched via our WSUS servers. Patching these 3rd party products are much more difficult. If Apple would just release a patch compared to a reinstall, that would make it somewhat easier. We have a good patch testing procedure in place for WSUS patches and deployment is easy. Turning on the auto-update feature is one possible solution with this product, but our business units do not like things auto-updating without testing first. There is also the fear that at some point, the auto-update will install iTunes, Safari or some toolbar too. I am reasonably sure we will be moving away from Quicktime very soon if Apple doesn't do something in the very near future to make this easier to patch and deploy in a large scale environment.
QuickTime creates a generic config file(Quicktime.qtp) during the installation process.(not in the .msi from what I can tell). It places it in every single user's profile folder(C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Apple Computer\QuickTime) and in the default user folder(C:\Documents and Settings\Default User\Local Settings\Application Data\Apple Computer\QuickTime). The way I did it was to install QuickTime. Make all configuration changes you want. Then navigate out to: C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Apple Computer\QuickTime and copy out the Quicktime.qtp from that folder. USERNAME obviously should correspond to whatever login ID you used to log into Windows with to configure QuickTime. Once you have the configured Quicktime.qtp file you are half way there. Use this in your package to over ride the generic one QT creates during its install.
Copy it to: C:\Documents and Settings\Default User\Local Settings\Application Data\Apple Computer\QuickTime.
This will take care of anyone that logs into the computer that didn't have a profile before QuickTime was installed(Windows profiles that get created after QT was installed).
Now comes the tricky part. How to copy the config file into all existing profile folders. I called cmd.exe with the following switch: /C DIR "C:\Documents and Settings\*." /AD /B > C:\temp\UserList.txt
This created a nice little txt file for me to read with my Wise script. You will have to build in an exclusion. It picks up accounts you don't need like Administrator, All Users, Default User, etc... From here your script just needs to read the other user accounts from the UserList.txt and plug them into the location below:
C:\Documents and Settings\%USERNAME%\Local Settings\Application Data\Apple Computer\QuickTime
Replace the Generic Quicktime.qtp QuickTime puts in each of these folders with the configured one you create. This will resolve the configuration issue... auto update being the most common issue.
Now if you are worried about any "self healing" or Un-installation cleanliness issues I wouldn't worry. The basic .msi installer from apple doesn’t remove the Application Data file anyway... so no loss there. You'd have to clean that up with a script anyway...
FYI… this works for 7.5.5 and 7.6.0…
--Mitch
I agree with you. I've done mine (http://itninja.com/question/gnu,-freeware-and-shareware-programs-to-cloning3896) the similiar way but using both Active Setup and advertise shortcut. I am pretty sure AS will take care of it, but just in case.
With the self healing and duplicate file, I find that the qtp file got replaced before the FinalCost. Must be one of the custom action component. I move the duplicatefile actions just before the finalcost to overwrite whatever been replaced. Not the best and cleaness solution but will do the trick for now.
Would you be able to send me a copy so that I can see how you do it? I will PM you. Thanks.
in this post, i have described the problem (and possible solutions):
http://www.appdeploy.com/messageboards/fb.asp?m=30536
Your approach is quite elegant, but nobody knows, what the side effects of this could be.
We currently have set the RO bit in the DuplicateFiles table and have a CA as very last deferred action, which removes the RO bit from quicktime.qtp.
Regards, Nick
However, a workaround could be to just remove the dialog resource from "Quicktime.cpl"
Load it into ResHacker and remove all entries in the dialog resource "109".
Then you have to make sure, that every user gets a preconfigured "QuickTime.qtp".
There are exact step by step guides in this forum to do this.
Hope this gives you some more ideas.
Regards, Nick
Just used this technique and it works a treat! [:D] Rated the post as well.
Excellent advice Nick.
Regards,
Brian
Comments:
-
Fitoz: THANK YOU!!! Very much.
Using ResHacker. I was able to remove the Update tab from Quicktime.cpl dialogue 109 tree. I was also able to remove "Update Existing Software" from the help menu from the quicktimeplayer.dll menu tree.
After 2+ days of searching the Internets! This BUD's for you! I love you man! (assuming you're a man). That is all. - wutamess 12 years ago
so that the conversation will remain readable.