Vbscript 如何使用vb脚本查找计算机中安装的lync或其升级版本skype

Vbscript 如何使用vb脚本查找计算机中安装的lync或其升级版本skype,vbscript,Vbscript,我需要向通信器用户显示警告信息,说明“安装lync,OCS将很快停用”。在显示此警告消息之前,我需要检查microsoft lync 2013或其升级skype是否在用户计算机中可用。如果两者都不可用,则只向用户显示消息 我使用以下代码检查Lync installaed与否。但如果用户使用skype(升级Lync),则向用户显示消息 任何有经验的人的帮助都会很好 On Error Resume Next Const HKLM = &H80000002 'HKEY_LOCAL_MACHI

我需要向通信器用户显示警告信息,说明“安装lync,OCS将很快停用”。在显示此警告消息之前,我需要检查microsoft lync 2013或其升级skype是否在用户计算机中可用。如果两者都不可用,则只向用户显示消息

我使用以下代码检查Lync installaed与否。但如果用户使用skype(升级Lync),则向用户显示消息

任何有经验的人的帮助都会很好

On Error Resume Next

Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE

    strComputer = "."

    strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"

    strEntry1a = "DisplayName"

    strEntry1b = "QuietDisplayName"

    strEntry1c = "DisplayVersion"

    strEntry1d = "UninstallString"

    IsLyncInstalled = 0 

    Set objReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")

    objReg.EnumKey HKLM, strKey, arrSubkeys
    'WScript.Echo "Installed Applications" & VbCrLf

    For Each strSubkey In arrSubkeys

    intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, strEntry1a, strValue1)

if intRet1 <> "" Then

objReg.GetExpandedStringValue HKLM, strKey & strSubkey, strEntry1a, strValue1

intCompare=StrComp("Microsoft Lync 2013",strValue1,vbTextCompare)

    IF intCompare = 0 THEN

IsLyncInstalled = 1

WScript.Echo "Microsoft Lync 2013 is  installed on this system" &VbCrLf  &strEntry1a & " : " & strValue1 


    END IF

End If

Next
出错时继续下一步
常数HKLM=&H80000002'HKEY\U本地\U机器
strComputer=“”
strKey=“软件\Microsoft\Windows\CurrentVersion\Uninstall\”
strEntry1a=“显示名称”
strEntry1b=“QuietDisplayName”
strEntry1c=“显示版本”
strEntry1d=“卸载字符串”
IsLyncInstalled=0
Set objReg=GetObject(“winmgmts://”和strComputer&“/root/default:StdRegProv”)
objReg.EnumKey HKLM、strKey、arrSubkeys
'WScript.Echo“已安装的应用程序”&VbCrLf
对于ArrSubkey中的每个strSubkey
intRet1=objReg.GetStringValue(HKLM、strKey和strSubkey、strengthY1a、strValue1)
如果intRet1为“”,则
objReg.GetExpandedStringValue HKLM、strKey和strSubkey、Strength1A、Strrvalue1
intCompare=StrComp(“Microsoft Lync 2013”,标准值1,vbTextCompare)
如果intCompare=0,则
IsLyncInstalled=1
WScript.Echo“此系统上安装了Microsoft Lync 2013”&VbCrLf&strEntry1a&“:”&strValue1
如果结束
如果结束
下一个

您可能希望查看WMI类,而不是通过注册表进行搜索。它可以识别电脑上安装的软件,并提供许多属性,可用于识别供应商、版本等

下面的示例显示了如何查询本地计算机并显示Win32产品的一些属性。使用
cscript
运行此命令:

strComputer = "."
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSoftware = objWMI.ExecQuery("SELECT * FROM Win32_Product")

For Each objSoftware In colSoftware

    s = objSoftware.Caption & vbCrLf
    s = s & String(79, "=") & vbCrLf    
    s = s & "Description: " & objSoftware.Description & vbCrLf
    s = s & "Identifying Number: " & objSoftware.IdentifyingNumber & vbCrLf
    s = s & "Install Location: " & objSoftware.InstallLocation & vbCrLf
    s = s & "Install State: " & objSoftware.InstallState & vbCrLf
    s = s & "Name: " & objSoftware.Name & vbCrLf
    s = s & "Package Cache: " & objSoftware.PackageCache & vbCrLf
    s = s & "SKUNumber: " & objSoftware.SKUNumber & vbCrLf
    s = s & "Vendor: " & objSoftware.Vendor & vbCrLf
    s = s & "Version: " & objSoftware.Version & vbCrLf
    s = s & vbCrLf

    WScript.Echo s

Next

查看您是否可以使用
标题
名称
SKUNumber
识别号码
版本
供应商
,或其他属性来区分Lync和Skype。

您好,谢谢您提供的信息。它解决了我的上述问题。很高兴提供帮助。如果您认为其他人也会觉得我的答案有用,请随意投票和/或接受我的答案。