If you're interested in updating users that have Yahoo! Messenger installed to the most recent version (because of the ActiveX Buffer Overflow issue), you can do it like this (this will also work for a more generic rollout of Yahoo! Messenger:
1. Start an install of Yahoo! Messenger with the most recent version.
2. After you have selected the options you want, it will download and run a file called ymsgr8us.exe. Usually this is in C:\Program Files\Yahoo!\Installs.
3. Copy this file out before the install finishes. You can run this installer silently by executing ymsgr8us.exe /S -- but if Yahoo! Messenger is running, the installation will fail. So you're better off using the script below to kill the process (includes a subprocedure that can be used to kill any running process). The script uses a line of code from Lucid's iTunes install script, as well as some code from a much more complicated Yahoo! installer I found elsewhere.
To see whether or not a computer is vulnerable to the ActiveX Buffer Overflow, look at the Product Version of C:\Program Files\Yahoo!\Messenger\yacscom.dll. If it's not "1, 0, 0, 48", the computer is vulnerable.
Here's the script -- just run it from the same directory as ymsgr8us.exe:
' Script to install Yahoo! Messenger 8.1.0.249
' (C) 2007 by Matthew Dessem
Sub KillProcessIfRunning (strProcessNameSub)
' Subprocedure to find and kill a process named strProcessNameSub
' by Matthew Dessem
dim objWMISub, objWshShellSub
dim strComputerSub, strQuerySub
dim colProcessListSub
strComputerSub = "."
Set objWshShellSub = WScript.CreateObject("WScript.Shell")
Set objWMISub = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputerSub & "\root\cimv2")
strQuerySub = "Select * from Win32_Process Where Name = '" & strProcessNameSub & "'"
Set colProcessListSub = objWMISub.ExecQuery (strQuerySub)
If Not colProcessListSub.Count = 0 Then
objWshShellSub.Run ("%COMSPEC% /C TASKKILL /F /IM " & strProcessNameSub), 0, False
KillProcessIfRunning (strProcessNameSub)
End If
End Sub
I also delete the desktop icon with this bit of VBScript code:
' Deletes the desktop icons.
If objFSO.FileExists (strAllUsersDesktopPath & "\Yahoo! Messenger.lnk") Then
objFSO.DeleteFile(strAllUsersDesktopPath & "\Yahoo! Messenger.lnk"), True
End If
If objFSO.FileExists (strAllUsersDesktopPath & "\Yahoo! Messenger with Voice.lnk") Then
objFSO.DeleteFile(strAllUsersDesktopPath & "\Yahoo! Messenger with Voice.lnk"), True
End If
______________________________
Which leaves a funky "ghost" icon on the desktop, so I then have to refresh the desktop with this bit of code:
Dim strDesktopFolder
strDesktopFolder = WshShell.SpecialFolders("Desktop")
WshShell.AppActivate strDesktopFolder
WshShell.SendKeys "{F5}"
______________________________
And while I'm putting in notes, here are some registry keys to be aware of:
' Prevents the client from automatically running for the logged in user upon next login (writes to the key first in case it does not exist - in order to prevent an error from occuring from deleting a non-existant key).
WshShell.RegWrite "HKEY_USERS\" & strUserSID & "\Software\Microsoft\Windows\CurrentVersion\Run\Yahoo! Pager", "placeHolder", "REG_SZ"
WshShell.RegDelete "HKEY_USERS\" & strUserSID & "\Software\Microsoft\Windows\CurrentVersion\Run\Yahoo! Pager"
Those are just snippets so they may need a few other prior items to fully work (for those of you new to VBScript). They're here to give you a good starting point when customizing your own installation.
This website uses cookies.
By continuing to use this site and/or clicking the "Accept" button you are providing consent
Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our
websites or when you do business with us. For more information about our
Privacy Policy and our data protection
efforts, please visit
GDPR-HQ