none
Verificar se SP3 do Xp está instalado. RRS feed

  • Pergunta

  •  

    Como faço um script que verifique se o Service Pack 3 do Windows Xp está instalado? E dependendo se estiver instalado execute uma ação.

     

    Grato pela ajuda.

    segunda-feira, 26 de maio de 2008 21:01

Respostas

  • ELton usa esse aqui:

     

    strcomputer = "."
    set objWMIService = getobject("WInmgmts:\\" & strcomputer & "\root\cimv2")
    Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    for each oses in colOSes
    Nome= oses.Caption
    SP = oses.ServicePackMajorVersion

    next

     

    If Instr(Nome, "XP") and SP = 3 then

    wscript.echo "Service PAck 3 instalado"

    end if

    quarta-feira, 28 de maio de 2008 21:17

Todas as Respostas

  • Elton segue o script para isso:

     

    strComputer = "."

    Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "/root/defaultTongue TiedtdRegProv")
    sBaseKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"
    iRC = oReg.EnumKey(HKLM, sBaseKey, aSubKeys)

    For Each sKey In aSubKeys
      iRC = oReg.GetStringValue(HKLM, sBaseKey & sKey, "DisplayName", sValue)
      If iRC <> 0 Then
        oReg.GetStringValue HKLM, sBaseKey & sKey, "QuietDisplayName", sValue
      End If
      If sValue <> "" Then
         iRC = oReg.GetStringValue(HKLM, sBaseKey & sKey, "DisplayVersion", sVersion)
         iRC = oReg.GetStringValue(HKLM, sBaseKey & sKey, "InstallDate", sDateValue)
         if sValue = "Windows XP Service Pack 3" then

            se existir coloco o código que quer aqui Wink
        end if
      End If

    Next

    segunda-feira, 26 de maio de 2008 21:26
  • Laerte, usei o seu script em um XP com SP3. No local onde você pediu pra colocar o código, coloquei o seguinte:

     

    Wscript.echo ("Service Pack 3 OK")

     

    Mas não retornou a mensagem que deveria. Seguindo a idéia que você me deu e pesquisando na internet fiz o seguinte script:

     

    Dim chave, strvalue
    Set chave = WScript.CreateObject("WScript.Shell")

    strvalue = chave.RegRead ("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CSDVersion")

    If strvalue = "Service Pack 3" Then
     WScript.Echo strvalue
    Else
     WScript.Echo "Service Pack 3 não instalado"
    End If

     

    Usei outra chave do registro. Se você puder dar alguma sugestão.... fico grato.

     

    quarta-feira, 28 de maio de 2008 12:16
  • ELton usa esse aqui:

     

    strcomputer = "."
    set objWMIService = getobject("WInmgmts:\\" & strcomputer & "\root\cimv2")
    Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    for each oses in colOSes
    Nome= oses.Caption
    SP = oses.ServicePackMajorVersion

    next

     

    If Instr(Nome, "XP") and SP = 3 then

    wscript.echo "Service PAck 3 instalado"

    end if

    quarta-feira, 28 de maio de 2008 21:17
  • Tem como explicar o que faz essas três primeiras linhas:

     

    strcomputer = "."
    set objWMIService = getobject("WInmgmts:\\" & strcomputer & "\root\cimv2")
    Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

    Mas valeu pela ajuda.

     

     Laerte wrote:

    ELton usa esse aqui:

     

    strcomputer = "."
    set objWMIService = getobject("WInmgmts:\\" & strcomputer & "\root\cimv2")
    Set colOSes = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
    for each oses in colOSes
    Nome= oses.Caption
    SP = oses.ServicePackMajorVersion

    next

     

    If Instr(Nome, "XP") and SP = 3 then

    wscript.echo "Service PAck 3 instalado"

    end if

    quinta-feira, 29 de maio de 2008 20:57
  • Esquenta não, estamos aqui para isso Wink e essas 3 linhas resumindo elas setam o computador local atraves do "." na primeira linha e abre uma query através de WMI na classe "Win32_OperatingSystem" que traz uma série de informações sobre os SO, instalados na máquina em que a query foi rodada Wink

     

    quinta-feira, 29 de maio de 2008 21:26