none
Como criar mais um case ou um novo else RRS feed

  • Pergunta

  • Ba tche..

    Galera como faço para criar um novo case ou else, a fim de separar uma parte desse scritp abaixo a fim do
    mesmo executar conforme o processo descrito abaixo que esta comentado entre ######

    Valeu Galera.

    Cod.

    Dim WSHShell, WshProcessEnvironment, WSHNetwork
    Set WSHShell              = CreateObject("WScript.Shell")
    Set WshShell              = Wscript.CreateObject("Wscript.Shell")
    Set objNetwork        = CreateObject("Wscript.Network")
    Set WshProcessEnvironment = WshShell.Environment("Process")

    strComputer = "."
    Set os = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
    For Each obj In os
        Set prps = obj.Properties_
        OSLang = prps("OSLanguage").value
        BldNum = prps("BuildNumber").value
    Next

    Select Case BldNum
        Case "2600"
           subXP
        Case "2195"
           subWin2000()
    End Select

    Sub subXP()

    'Instala Antivirus
     WSHShell.Run "\\servidor\dados\Antivirus\Instala.BAT"

    'Service Pack
    strComputer = "."

    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSettings = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")
    For Each objOperatingSystem in colSettings
       instalaSP objOperatingSystem.ServicePackMajorVersion &_
         "." & objOperatingSystem.ServicePackMinorVersion

    Next
    End sub

    '=======================================================================================
    Sub instalaSP(servicepack)
    strServicePack =  MID(servicepack,1,1)
    Select Case strServicePack

    Case "1"
    WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp1.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "2"
    WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp2.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "3"
    WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp3.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "4"
    instalaKB

    End select
    End sub

    '===========================================================================================
    'Hot Fix
    sub instalaKB

    Const HKLM = &H80000002
    set WSHSHELL = createobject("wscript.shell")
     strComputer = "."
     Set oReg=GetObject("winmgmts:\\" & _
       strComputer & "\root\default:StdRegProv")
     
    oReg.GetStringValue HKLM,"SOFTWARE\Microsoft\Updates\Windows XP\SP4\KB923561","Type",strValue2

    If IsNull(strValue2) Then
        WSHSHELL.run "cmd /c \\servidor\patch\patchs\MS09-010\KB923561.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    End If

    End sub

    '###########################################################################################################################################
    'Criar um novo Case ou else para essa parte dentro desse script que possibilite a executçao do mesmo com a seguinte ordem,
    'se aplicar os patch, ele aplica esse case / else, e se for visto que nao tem que instalar os patchs, ele aplique essas
    'informaçoes como uma ultima etapa antes do msg box.!!!
    'Dessa forma ele ira rodar essa parte abaixo, se os patch`s tiverem que ser instalados, ou ira rodar se os patch`s não tiverem que ser instalados.
    '###########################################################################################################################################

    'Remove Windows Messenger
     WSHShell.Run "cmd /c sysocmgr.exe /i:%windir%\inf\sysoc.inf /u:\\servidor\dados\msn.txt"

    'Desabilita o Agendamento no Windows
     WSHShell.Run "cmd /c secedit.exe /configure /db mod.sdb /CFG \\servidor\dados\Tasks.inf /overwrite /quiet"
     
     Set WSHShell = Nothing
      Msg = Msg &  "Maquina XP Finazilizada" & Chr(10)
      MsgBox msg,60,"Configurador"
     
    wscript.quit

    terça-feira, 18 de agosto de 2009 00:00

Respostas

  • Olá,

    Ficou um pouco confuso... Vamos lá..

    A ordem correta do seu script é essa abaixo:

    Agora as dúvidas:

    '###########################################################################################################################################
    'Criar um novo Case ou else para essa parte dentro desse script que possibilite a executçao do mesmo com a seguinte ordem,
    'se aplicar os patch, ele aplica esse case / else, e se for visto que nao tem que instalar os patchs, ele aplique essas
    'informaçoes como uma ultima etapa antes do msg box.!!!
    'Dessa forma ele ira rodar essa parte abaixo, se os patch`s tiverem que ser instalados, ou ira rodar se os patch`s não tiverem que ser instalados.
    '###########################################################################################################################################

    sirá executar o bloqueio do msn se os patchs estiverem aplicados, correto??? Já esta assim.

    Ou irá rodar se os patchs não tiverem que ser instalados??? Você quer dizer, não irá bloquear o msn? É isso?

    Se for isso, vou inserir no código abaixo uma variavel (lRet) para validar isso:


    Dim WSHShell, WshProcessEnvironment, WSHNetwork,lRET

    Set WSHShell              = CreateObject("WScript.Shell")
    Set WshShell              = Wscript.CreateObject("Wscript.Shell")
    Set objNetwork        = CreateObject("Wscript.Network")
    Set WshProcessEnvironment = WshShell.Environment("Process")
    lRet = FALSE
    strComputer = "."
    Set os = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
    For Each obj In os
        Set prps = obj.Properties_
        OSLang = prps("OSLanguage").value
        BldNum = prps("BuildNumber").value
    Next

    Select Case BldNum
        Case "2600"
           subXP
        Case "2195"
           subWin2000()
    End Select


    '###########################################################################################################################################
    'Criar um novo Case ou else para essa parte dentro desse script que possibilite a executçao do mesmo com a seguinte ordem,
    'se aplicar os patch, ele aplica esse case / else, e se for visto que nao tem que instalar os patchs, ele aplique essas
    'informaçoes como uma ultima etapa antes do msg box.!!!
    'Dessa forma ele ira rodar essa parte abaixo, se os patch`s tiverem que ser instalados, ou ira rodar se os patch`s não tiverem que ser instalados.
    '###########################################################################################################################################

    if lRet = TRUE Then
       'Remove Windows Messenger
        WSHShell.Run "cmd /c sysocmgr.exe /i:%windir%\inf\sysoc.inf /u:\\servidor\dados\msn.txt"

       'Desabilita o Agendamento no Windows
       WSHShell.Run "cmd /c secedit.exe /configure /db mod.sdb /CFG \\servidor\dados\Tasks.inf /overwrite /quiet"
     
    End if

    Set WSHShell = Nothing
    Msg = Msg &  "Maquina XP Finazilizada" & Chr(10)
    MsgBox msg,60,"Configurador"
     
    wscript.quit



    '=======================================================================================

    Sub subXP()

    'Instala Antivirus
    WSHShell.Run "\\servidor\dados\Antivirus\Instala.BAT"

    'Service Pack
    strComputer = "."

    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSettings = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")
    For Each objOperatingSystem in colSettings
       instalaSP objOperatingSystem.ServicePackMajorVersion &_
         "." & objOperatingSystem.ServicePackMinorVersion

    Next
    End sub

    '=======================================================================================
    Sub instalaSP(servicepack)
    strServicePack =  MID(servicepack,1,1)
    Select Case strServicePack

    Case "1"
       WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp1.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "2"
       WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp2.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "3"
       WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp3.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    End select
    End sub

    '===========================================================================================
    'Hot Fix
    sub instalaKB

    Const HKLM = &H80000002
    set WSHSHELL = createobject("wscript.shell")
     strComputer = "."
     Set oReg=GetObject("winmgmts:\\" & _
       strComputer & "\root\default:StdRegProv")
     
    oReg.GetStringValue HKLM,"SOFTWARE\Microsoft\Updates\Windows XP\SP4\KB923561","Type",strValue2

    If IsNull(strValue2) Then
        WSHSHELL.run "cmd /c \\servidor\patch\patchs\MS09-010\KB923561.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
       lRet = TRUE
    End If

    End sub
    '=======================================================================================



    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Marcelo TI terça-feira, 18 de agosto de 2009 14:23
    terça-feira, 18 de agosto de 2009 11:44

Todas as Respostas

  • Olá,

    Ficou um pouco confuso... Vamos lá..

    A ordem correta do seu script é essa abaixo:

    Agora as dúvidas:

    '###########################################################################################################################################
    'Criar um novo Case ou else para essa parte dentro desse script que possibilite a executçao do mesmo com a seguinte ordem,
    'se aplicar os patch, ele aplica esse case / else, e se for visto que nao tem que instalar os patchs, ele aplique essas
    'informaçoes como uma ultima etapa antes do msg box.!!!
    'Dessa forma ele ira rodar essa parte abaixo, se os patch`s tiverem que ser instalados, ou ira rodar se os patch`s não tiverem que ser instalados.
    '###########################################################################################################################################

    sirá executar o bloqueio do msn se os patchs estiverem aplicados, correto??? Já esta assim.

    Ou irá rodar se os patchs não tiverem que ser instalados??? Você quer dizer, não irá bloquear o msn? É isso?

    Se for isso, vou inserir no código abaixo uma variavel (lRet) para validar isso:


    Dim WSHShell, WshProcessEnvironment, WSHNetwork,lRET

    Set WSHShell              = CreateObject("WScript.Shell")
    Set WshShell              = Wscript.CreateObject("Wscript.Shell")
    Set objNetwork        = CreateObject("Wscript.Network")
    Set WshProcessEnvironment = WshShell.Environment("Process")
    lRet = FALSE
    strComputer = "."
    Set os = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
    For Each obj In os
        Set prps = obj.Properties_
        OSLang = prps("OSLanguage").value
        BldNum = prps("BuildNumber").value
    Next

    Select Case BldNum
        Case "2600"
           subXP
        Case "2195"
           subWin2000()
    End Select


    '###########################################################################################################################################
    'Criar um novo Case ou else para essa parte dentro desse script que possibilite a executçao do mesmo com a seguinte ordem,
    'se aplicar os patch, ele aplica esse case / else, e se for visto que nao tem que instalar os patchs, ele aplique essas
    'informaçoes como uma ultima etapa antes do msg box.!!!
    'Dessa forma ele ira rodar essa parte abaixo, se os patch`s tiverem que ser instalados, ou ira rodar se os patch`s não tiverem que ser instalados.
    '###########################################################################################################################################

    if lRet = TRUE Then
       'Remove Windows Messenger
        WSHShell.Run "cmd /c sysocmgr.exe /i:%windir%\inf\sysoc.inf /u:\\servidor\dados\msn.txt"

       'Desabilita o Agendamento no Windows
       WSHShell.Run "cmd /c secedit.exe /configure /db mod.sdb /CFG \\servidor\dados\Tasks.inf /overwrite /quiet"
     
    End if

    Set WSHShell = Nothing
    Msg = Msg &  "Maquina XP Finazilizada" & Chr(10)
    MsgBox msg,60,"Configurador"
     
    wscript.quit



    '=======================================================================================

    Sub subXP()

    'Instala Antivirus
    WSHShell.Run "\\servidor\dados\Antivirus\Instala.BAT"

    'Service Pack
    strComputer = "."

    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSettings = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")
    For Each objOperatingSystem in colSettings
       instalaSP objOperatingSystem.ServicePackMajorVersion &_
         "." & objOperatingSystem.ServicePackMinorVersion

    Next
    End sub

    '=======================================================================================
    Sub instalaSP(servicepack)
    strServicePack =  MID(servicepack,1,1)
    Select Case strServicePack

    Case "1"
       WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp1.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "2"
       WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp2.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "3"
       WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp3.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    End select
    End sub

    '===========================================================================================
    'Hot Fix
    sub instalaKB

    Const HKLM = &H80000002
    set WSHSHELL = createobject("wscript.shell")
     strComputer = "."
     Set oReg=GetObject("winmgmts:\\" & _
       strComputer & "\root\default:StdRegProv")
     
    oReg.GetStringValue HKLM,"SOFTWARE\Microsoft\Updates\Windows XP\SP4\KB923561","Type",strValue2

    If IsNull(strValue2) Then
        WSHSHELL.run "cmd /c \\servidor\patch\patchs\MS09-010\KB923561.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
       lRet = TRUE
    End If

    End sub
    '=======================================================================================



    Até mais,

    Jesiel

    Obs.: Se útil, classifique


    • Marcado como Resposta Marcelo TI terça-feira, 18 de agosto de 2009 14:23
    terça-feira, 18 de agosto de 2009 11:44
  • Ba Jesiel Bom dia.
    Vamos por partes entao pois ficou dificil de compreender mesmo, me desculpe eu ja estava com sono ehehe ops espero que meu chefe nao veja isso heheh..


    'Instala o Antivirus, sera a primeira parte antes de tudo.
     WSHShell.Run "\\servidor\dados\Antivirus\Instala.BAT"

    'Service Pack ira instalar se caso necessario como ja conversamos esta ok tb.
    strComputer = "."

    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colSettings = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")
    For Each objOperatingSystem in colSettings
       instalaSP objOperatingSystem.ServicePackMajorVersion &_
         "." & objOperatingSystem.ServicePackMinorVersion

    Next
    End sub

    '=======================================================================================
    Sub instalaSP(servicepack)
    strServicePack =  MID(servicepack,1,1)
    Select Case strServicePack

    Case "1"
    WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp1.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "2"
    WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp2.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "3"
    WSHSHELL.run "cmd /c \\servidor\patch\patchs\sp\sp3.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    Case "4"
    instalaKB

    End select
    End sub

    '===========================================================================================
    'Hot Fix instala apos o processo do service pack, e se as chaves de registro nao estiverem la que tb esta ok.
    sub instalaKB

    Const HKLM = &H80000002
    set WSHSHELL = createobject("wscript.shell")
     strComputer = "."
     Set oReg=GetObject("winmgmts:\\" & _
       strComputer & "\root\default:StdRegProv")
     
    oReg.GetStringValue HKLM,"SOFTWARE\Microsoft\Updates\Windows XP\SP4\KB923561","Type",strValue2

    If IsNull(strValue2) Then
        WSHSHELL.run "cmd /c \\servidor\patch\patchs\MS09-010\KB923561.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    End If

    End sub

    '###########################################################################################################################################

    'Remove Windows Messenger, ele ira fazer apos terminar o processo de instalaçao dos patch, mesmo se nao for necessario instalar nenhum patch
     WSHShell.Run "cmd /c sysocmgr.exe /i:%windir%\inf\sysoc.inf /u:\\servidor\dados\msn.txt"

    'Desabilita o Agendamento no Windows, ele ira fazer apos terminar o processo de instalaçao dos patch, mesmo se nao for necessario instalar nenhum patch
     WSHShell.Run "cmd /c secedit.exe /configure /db mod.sdb /CFG \\servidor\dados\Tasks.inf /overwrite /quiet"

    Ficou mais facil de compreender, é isso que vc fez utilizando o lRET ??

    terça-feira, 18 de agosto de 2009 12:19
  • Olá,

    Nao... o que eu fiz ele vai executar se precisar instalar o patch.


    Do jeito que está ele já esta fazendo isso, não está???

    Você pode fazer é colocar ele no final do SUB  instalaKB

    Ficando o sub assim:


    '===========================================================================================
    'Hot Fix instala apos o processo do service pack, e se as chaves de registro nao estiverem la que tb esta ok.
    sub instalaKB

    Const HKLM = &H80000002
    set WSHSHELL = createobject("wscript.shell")
     strComputer = "."
     Set oReg=GetObject("winmgmts:\\" & _
       strComputer & "\root\default:StdRegProv")
     
    oReg.GetStringValue HKLM,"SOFTWARE\Microsoft\Updates\Windows XP\SP4\KB923561","Type",strValue2

    If IsNull(strValue2) Then
        WSHSHELL.run "cmd /c \\servidor\patch\patchs\MS09-010\KB923561.exe /quiet /passive /norestart /overwriteoem /nobackup /nodialog"
    End If

     

    'Remove Windows Messenger, ele ira fazer apos terminar o processo de instalaçao dos patch, mesmo se nao for necessario instalar nenhum patch
     WSHShell.Run "cmd /c sysocmgr.exe /i:%windir%\inf\sysoc.inf /u:\\servidor\dados\msn.txt"

    'Desabilita o Agendamento no Windows, ele ira fazer apos terminar o processo de instalaçao dos patch, mesmo se nao for necessario instalar nenhum patch
     WSHShell.Run "cmd /c secedit.exe /configure /db mod.sdb /CFG \\servidor\dados\Tasks.inf /overwrite /quiet"



    End sub

    '###########################################################################################################################################



    Até mais,

    Jesiel

    Obs.: Se útil, classifique

    terça-feira, 18 de agosto de 2009 12:53
  • Ba Jesiel

    Agora depois de tomar banho e acordar... nossa essa madrugada no trampo foi complicada... compreendi tudo tche, ele ja fazia o que eu queria e tb realizada as etapas de boa, gostei dessa que vc deu como lret, vou usar para outra situçao...

    Valeu grande amigo.

    terça-feira, 18 de agosto de 2009 14:23