/build/static/layout/Breadcrumb_cap_w.png

Scripting Skype 6.16 and getting rid of the older versions

Skype has decided to "Retire" some of its older version.  In their blog post they say:

As we look ahead to the future, we‘re focusing our efforts on bringing the latest and greatest to the most recent versions of Skype. As a result, we are going to retire older versions of Skype for Windows desktop (6.13 and below) as well as Skype for Mac (6.14 and below) over the next few months.


What that means is that some of our users will not be able to log into Skype until they get updated.  We are currently running multiple version of Skype and were looking for a quick and simple way to uninstall the older version, install the newest version, but most importantly do not "Run on Windows Startup" and only install Skype, nothing else.  All this information is out there in bits and pieces.  This post will put them all together, hopefully, in an easy to understand guide. 


Disclaimer:  This is what worked for us.  This should get you on the path of getting this to work for you.  But this post is AS IS.

Now with all that out of the way, this is what we did:

Download the newest version of business Skype from here: http://www.skype.com/en/business/downloading/

This should give your the Skype MSI.   For those of you who wish to just install Skype (no uninstall, etc) you can use the following commands:

  1. msiexec.exe /i skypesetup.msi /qn STARTSKYPE=FALSE SKYPEREMOVAL=DEFAULT ALLUSERS=1 FEATURE_PHONE=0 FEATURE_IEPLUGIN=0 FEATURE_FFPLUGIN=0 INSTALLLEVEL=1 TRANSFORMS=:RemoveStartup.mst TRANSFORMS=:RemoveDesktopShortcut.mst /qn /norestart /l skype.log
  2. REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v Skype /f

No.1 will install Skype without other features and stops the shortcut.  This also tries to stop the Run on Windows Startup, but have had problems with this.  It seems to work on every other user EXCEPT for the one under which is was installed.  To fix that, run No.2. 


Uninstall Single Version

So you have Skype already installed and want to uninstall it.  There is a very easy way to do this.  In K1000 just search for your Skype version (Inventory-> Software) and find the uninstall command like: MsiExec.exe /X{4E76FF7E-AEBA-4C87-B788-CD47E5425B9D}


add a few switches and that gives you:

MsiExec.exe /X{4E76FF7E-AEBA-4C87-B788-CD47E5425B9D} /qn /NORESTART

This will uninstall this specific version of Skype quietly and not restart the computer.  This works for single version of Skype.  And if you have kept it so you only have one version.

 Congratulations 

Uninstall Multiple Versions:

If you are stuck with multiple versions, this just got a lot more complicated.  You need to check the version of Skype installed, then use the correct MsiExec.exe command to uninstall it.  first we need to find the version that in on that specific computer.  We are going to use a VBS script to do this:
Function GetVersion(DriveSpec)
   Dim fso, temp
   Set fso = CreateObject("Scripting.FileSystemObject")
   if fso.FileExists(DriveSpec) then temp = fso.GetFileVersion(DriveSpec)
   If Len(temp) Then
      GetVersion = temp
   Else
      GetVersion = "No version information available."
   End If
End Function
FILEVERSION=getversion("c:\program files\Skype\Phone\Skype.exe")'

This script tells the computer to find Skype.exe at C:\Program Files\Skype\Phone\ and find the version number (if your Skype.exe is somewhere else,  you will need to change this).  We then use this information so that the correct MSI is used to uninstall Skype. 


Trick:  The version number is not the number that says version. It is the version number listed in the information link


We put this together (again in a vbs script) with the above and get the following:

if FILEVERSION = "5.1.59.112" then  
strcommand="MsiExec.exe /X{E633D396-5188-4E9D-8F6B-BFB8BF3467E8} /qn /NORESTART"

This uninstalls the correct version.  If you have multiple version that need to be uninstalled (because who wants to make 7 scripts for 7 different versions, just use if...then...elseif...then...endif.)


Sorry for the rambling.  But putting that all together will give you the info in the check_ver.vbs.  This checks the version of Skype, uninstalls it, then installs the new one.


Check_ver.vbs (just copy and paste into notepad)*

*probably doesn't have every single version in the known world in it, you should check it to ensure the version you need it specified it not, then just add it as discussed above:

Function GetVersion(DriveSpec)
   Dim fso, temp
   Set fso = CreateObject("Scripting.FileSystemObject")

   if fso.FileExists(DriveSpec) then temp = fso.GetFileVersion(DriveSpec)
   If Len(temp) Then
      GetVersion = temp

   Else
      GetVersion = "No version information available."
   End If

End Function

FILEVERSION=getversion("c:\program files\Skype\Phone\Skype.exe")
'b=msgbox(a)
Set wshshell = CreateObject("WScript.Shell")
if FILEVERSION = "6.7.32.102" then 
strcommand="MsiExec.exe /X{1845470B-EB14-4ABC-835B-E36C693DC07D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.6.0.106" then 
strcommand="MsiExec.exe /X{4E76FF7E-AEBA-4C87-B788-CD47E5425B9D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.9.0.106" then 
strcommand="MsiExec.exe /X{4E76FF7E-AEBA-4C87-B788-CD47E5425B9D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.5.60.158" then 
strcommand="MsiExec.exe /X{4E76FF7E-AEBA-4C87-B788-CD47E5425B9D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.3.32.105" then 
strcommand="MsiExec.exe /X{1845470B-EB14-4ABC-835B-E36C693DC07D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.16.0.105" then 
strcommand="MsiExec.exe /X{7A3C7E05-EE37-47D6-99E1-2EB05A3DA3F7} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.14.0.104" then 
strcommand="MsiExec.exe /X{7A3C7E05-EE37-47D6-99E1-2EB05A3DA3F7} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.13.0.104" then  
strcommand="MsiExec.exe /X{7A3C7E05-EE37-47D6-99E1-2EB05A3DA3F7} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.11.0.102" then  
strcommand="MsiExec.exe /X{4E76FF7E-AEBA-4C87-B788-CD47E5425B9D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.8.32.158" then  
strcommand="MsiExec.exe /X{1845470B-EB14-4ABC-835B-E36C693DC07D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.5.32.113" then  
strcommand="MsiExec.exe /X{F1CECE09-7CBE-4E98-B435-DA87CDA86167} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.5.0.124" then  
strcommand="MsiExec.exe /X{AA59DDE4-B672-4621-A016-4C248204957A} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.3.0.120" then  
strcommand="MsiExec.exe /X{D6F879CC-59D6-4D4B-AE9B-D761E48D25ED} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.3.0.116" then  
strcommand="MsiExec.exe /X{5335DADB-34BA-4AE8-A519-648D78498846} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.10.32.116" then 
strcommand="MsiExec.exe /X{1845470B-EB14-4ABC-835B-E36C693DC07D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.1.59.112" then  
strcommand="MsiExec.exe /X{E633D396-5188-4E9D-8F6B-BFB8BF3467E8} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.1.0.104" then  
strcommand="MsiExec.exe /X{E633D396-5188-4E9D-8F6B-BFB8BF3467E8} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "5.0.32.152" then  
strcommand="MsiExec.exe /X{9C538746-C2DC-40FC-B1FB-D4EA7966ABEB} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "4.2.0.155" then  
strcommand="MsiExec.exe /X{D103C4BA-F905-437A-8049-DB24763BBE36} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "4.2.32.169" then 
strcommand="MsiExec.exe /X{5C474A83-A45F-470C-9AC8-2BD1C251BF9A} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.7.0.102" then 
strcommand="MsiExec.exe /X{4E76FF7E-AEBA-4C87-B788-CD47E5425B9D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
elseif FILEVERSION = "6.11.0.102" then 
strcommand="MsiExec.exe /X{4E76FF7E-AEBA-4C87-B788-CD47E5425B9D} /qn /NORESTART"
wshshell.Run(strcommand),0,true
else

end if
strcommand="msiexec.exe /i skypesetup.msi /qn STARTSKYPE=FALSE SKYPEREMOVAL=DEFAULT ALLUSERS=1 FEATURE_PHONE=0 FEATURE_IEPLUGIN=0 FEATURE_FFPLUGIN=0 INSTALLLEVEL=1 TRANSFORMS=:RemoveStartup.mst TRANSFORMS=:RemoveDesktopShortcut.mst /qn /norestart /l skype.log"
wshshell.Run(strcommand),0,true
strcommand="REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v Skype /f"
wshshell.Run(strcommand),0,true

Making it silent. 

Unfortunately,  you get a command box that pops up.  If you can trust your users not to close it down then fine.  If not, then you need to use the below. This makes vbs and bat files run invisible.


Invis.vbs*

*just copy this and put it into a notepad file called invis.vbs

CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False 


Make your script.

My script has 3 files:
  1. SkypeSetup.msi
  2. Invis.vbs
  3. Check_ver.vbs

 Upload the zip file with the above to your software inventory.  In the script itself Install a software package 



The install arguments are*:  wscript.exe "C:\ProgramData\Dell\KACE\downloads\XXXX\invis.vbs" "C:\ProgramData\Dell\KACE\downloads\XXXX\check_ver.vbs"

*you will need to replace the XXXX with the software id.  If anyone knows a variable that automatically assigns this, please say so in the comments.

And there.  You should be done.  As always: TEST TEST TEST.  This worked in my environment.  Hopefully it will work in yours. 



Comments

  • I found a one-liner to uninstall any version of Skype. It's a little bit longer to execute but it has the advantage to work with any version, without the need to find the uninstallation string :

    wmic /interactive:off product where "name LIKE 'Skype%'" call uninstall

    I hope it will be helpful to someone. - araxor 10 years ago
    • That is really short and sweet. I still have a few people with laptops that have not checked in. But a question: I can't seem to stop the reboot. Is there a way to suppress reboot with this? - Beetschen 10 years ago
      • I made a package with a script that uninstalls skype with WMIC, then intalls the last version on computer bootup, so I don't have to bother with hiding the script window, killing skype on the computer or manage the reboots.

        I don't know if there's a way to suppress the reboots when uninstalling through WMIC. However, Skype doesn't seem to need a reboot to uninstall. It didn't reboot when I tested in my environment.

        One little precision: the one-liner that I wrote doesn't work in a batch script only in the command prompt. If you want to use it in a batch script, you have to double the %, because its parsed as a environment variable. It will then look like this:
        wmic /interactive:off product where "name LIKE 'Skype%%'" call uninstall

        You can also use WMIC to remotely uninstall Skype on a computer without using Kace at all. It will look like this (in a command prompt):
        wmic /node:COMPUTERNAME /interactive:off product where "name LIKE 'Skype%'" call uninstall - araxor 10 years ago
This post is locked

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login
Blog

View More Blogs from Beetschen

Share

 
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