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.
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:- 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
- 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.
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.
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)*
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*
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
Make your script.
My script has 3 files:- SkypeSetup.msi
- Invis.vbs
- 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.
wmic /interactive:off product where "name LIKE 'Skype%'" call uninstall
I hope it will be helpful to someone. - araxor 10 years ago
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