none
Como fazer RRS feed

  • Pergunta

  • Galera bom dia.

     

    Ba tche, vamos a mais uma missão critica, o devo colocar nesse script para deixá-lo pronto para verificar se existe uma pasta no diretório C da estação, e se a mesma existir, verificar se uma DLL existe no system32, e se caso existir ele finaliza o script e se caso no existir ele copia e registra a DLL, e pra ficar mais fácil, criar um log no final contendo o nome da estação, nome do user, e se a DLL foi copiada e registra.

     

    strComputer = "."

    Set os = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem")
    Set strFolder = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Wscript.Shell")

    For Each obj In os
        Set prps = obj.Properties_
        OSLang = prps("OSLanguage").value
        BldNum = prps("BuildNumber").value
    Next

    Select Case BldNum
        Case "2600"
           OPERATINGSYSTEM = "WINDOWS-XP"
        Case "2195"
           OPERATINGSYSTEM = "WINDOWS-2000"
    End Select

    wscript.echo OPERATINGSYSTEM

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

    -----------------------

    Sub subXP()

     

    Dim aOrigem(1)
    Dim aDestino(1)

    aOrigem(0) = "\\srv01\biblioteca\RTV.DLL"
    aDestino(0) = "%systemroot%\system32\"

    For x = 0 to UBOUND(aOrigem)
       CopiaArquivo aOrigem(x),aDestino(x)
    Next

    Sub CopiaArquivo(origem,Destino)
    strFolder.CopyFile origem , destino , true

    objShell.run "regsvr32 /S %systemroot%\system32\rtv.dll",, True

    End sub

    ----------------------------------

    Sub subWIn2000()

     

    Dim aOrigem(1)
    Dim aDestino(1)

    aOrigem(0) = "\\srv01\biblioteca\RTV.DLL"
    aDestino(0) = "%systemroot%\system32\"


    For x = 0 to UBOUND(aOrigem)
       CopiaArquivo aOrigem(x),aDestino(x)
    Next

    Sub CopiaArquivo(origem,Destino)
    strFolder.CopyFile origem , destino , true

    objShell.run "regsvr32 /S %systemroot%\system32\rtv.dll",, True

    End sub

    terça-feira, 27 de abril de 2010 13:30

Respostas

  • Tente novamente com esse

    Dim FlagCopiado
    Dim strLogPath
    strComputer = "."

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Wscript.Shell")
    Set WshNetwork = CreateObject("WScript.Network") 

    strWinDir = objShell.ExpandEnvironmentStrings("%SYSTEMROOT%")
    strSysDrive = objShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%")

    Dim aOrigem
    Dim aDestino

    'Alterar esse caminho para salvar os logs
    strLogPath = "\\server\logs\" & WshNetwork.ComputerName & ".txt"

    aOrigem = "\\srv01\biblioteca\RTV.DLL"
    aDestino = strWinDir & "\system32\"
    If objFSO.FolderExists(strSysDrive & "\SysRTV") Then
        If Not objFSO.FileExists(strWinDir & "\system32\rtv.dll") Then

           FlagCopiado = 1

           CopiaArquivo aOrigem,aDestino
     
        End If
     
    End If

    Set ObjFileAppending = ObjFSO.opentextfile(strLogPath, 8, True)
    If FlagCopiado <> 1 Then
        ObjFileAppending.WriteLine "Arquivo não copiado"
    Else
        ObjFileAppending.WriteLine "Arquivo copiado"
    End If


    Sub CopiaArquivo(origem,Destino)
    objFSO.CopyFile origem , destino , true
    objShell.run "regsvr32 /S " & strWinDir & "\system32\rtv.dll",, True
    End sub


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    • Marcado como Resposta Marcelo TI terça-feira, 27 de abril de 2010 19:26
    terça-feira, 27 de abril de 2010 19:01

Todas as Respostas

  • Marcelo,

    Me passe alguns detalhes pra que eu possa te ajudar.

    Você precisa chechar o Sistema operacional? É executado alguma coisa diferente dependendo se ele é 2000 ou XP?

    Você vai verificar se uma pasta existe, se sim verificar se o arquivo existe no system32, se já existe beleza e se não copia e registra a dll? Correto.

    Aguardo seu retorno.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 27 de abril de 2010 14:00
  • Gabriel

    Quando tenho o sistema instalado em uma estação, sempre a pasta C:\SysRTV vai estar presente, o que tenho que fazer, verificar o SO, mais pensando em mandar em %systemroot%, nao seria necessario. a questão é, verificar se a pasta existe para saber que o sistema esta na maquina, uma vez que o sistema esteja, o vbs tem que verificar se a dll existe ou nao, se existir, ele finaliza o script gerando o log, se nao ele copia a dll e registra a mesma e finaliza gereando o log.

    terça-feira, 27 de abril de 2010 15:36
  • Veja se isso te ajuda...

    strComputer = "."

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Wscript.Shell")

    strWinDir = objShell.ExpandEnvironmentStrings("%SYSTEMROOT%")
    strSysDrive = objShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%")

    Dim aOrigem
    Dim aDestino

    aOrigem = "\\srv01\biblioteca\RTV.DLL"
    aDestino = strWinDir & "\system32\"
    If objFSO.FolderExists(strSysDrive & "\SysRTV") Then
        If Not objFSO.FileExists(strWinDir & "\system32\rtv.dll") Then
           CopiaArquivo aOrigem,aDestino   
        End If
     
    End If

    Sub CopiaArquivo(origem,Destino)
    objFSO.CopyFile origem , destino , true
    objShell.run "regsvr32 /S " & strWinDir & "\system32\rtv.dll",, True
    End sub

     

    Se for útil vote e qualquer dúvida poste.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 27 de abril de 2010 15:46
  • E assim para logar se copiou ou não.

    Dim FlagCopiado
    Dim strLogPath
    strComputer = "."

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Wscript.Shell")
    Set WshNetwork = CreateObject("WScript.Network") 

    strWinDir = objShell.ExpandEnvironmentStrings("%SYSTEMROOT%")
    strSysDrive = objShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%")

    Dim aOrigem
    Dim aDestino

    'Alterar esse caminho para salvar os logs
    strLogPath = "\\server\logs\" & WshNetwork.ComputerName & ".txt"

    aOrigem = "\\srv01\biblioteca\RTV.DLL"
    aDestino = strWinDir & "\system32\"
    If objFSO.FolderExists(strSysDrive & "\SysRTV") Then
        If Not objFSO.FileExists(strWinDir & "\system32\rtv.dll") Then
           CopiaArquivo aOrigem,aDestino
           FlagCopiado = 1   
        End If
     
    End If

    Set ObjFileAppending = ObjFSO.opentextfile(strLogPath, 8, True)
    If FlagCopiado <> 1 Then
        ObjFileAppending.WriteLine "Arquivo não copiado"
    Else
        ObjFileAppending.WriteLine "Arquivo copiado"
    End If


    Sub CopiaArquivo(origem,Destino)
    objFSO.CopyFile origem , destino , true
    objShell.run "regsvr32 /S " & strWinDir & "\system32\rtv.dll",, True
    End sub

    Qualquer dúvida poste.

    Abraço.


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 27 de abril de 2010 16:19
  • Show Tche

    so faltou a questão do log para saber aonde foi aplicado, é facil adicionar isso ?

    terça-feira, 27 de abril de 2010 17:27
  • Marcelo,

    Acho que você não viu mas eu já tinha mandado com o log.

    Somente altere o strLogPath para o local onde vc irá salvar os logs.

    Dim FlagCopiado
    Dim strLogPath
    strComputer = "."

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Wscript.Shell")
    Set WshNetwork = CreateObject("WScript.Network") 

    strWinDir = objShell.ExpandEnvironmentStrings("%SYSTEMROOT%")
    strSysDrive = objShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%")

    Dim aOrigem
    Dim aDestino

    'Alterar esse caminho para salvar os logs
    strLogPath = "\\server\logs\" & WshNetwork.ComputerName & ".txt"

    aOrigem = "\\srv01\biblioteca\RTV.DLL"
    aDestino = strWinDir & "\system32\"
    If objFSO.FolderExists(strSysDrive & "\SysRTV") Then
        If Not objFSO.FileExists(strWinDir & "\system32\rtv.dll") Then
           CopiaArquivo aOrigem,aDestino
           FlagCopiado = 1   
        End If
     
    End If

    Set ObjFileAppending = ObjFSO.opentextfile(strLogPath, 8, True)
    If FlagCopiado <> 1 Then
        ObjFileAppending.WriteLine "Arquivo não copiado"
    Else
        ObjFileAppending.WriteLine "Arquivo copiado"
    End If


    Sub CopiaArquivo(origem,Destino)
    objFSO.CopyFile origem , destino , true
    objShell.run "regsvr32 /S " & strWinDir & "\system32\rtv.dll",, True
    End sub

     

    Qualquer dúvida poste e se for isso que precisa feche a thread.

    Abraço.
    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    terça-feira, 27 de abril de 2010 18:09
  • Gabriel

    legal esta gerando o log porem ele copiando ou nao copiando ele grava no log que nao copiou ???

    terça-feira, 27 de abril de 2010 18:53
  • Tente novamente com esse

    Dim FlagCopiado
    Dim strLogPath
    strComputer = "."

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Wscript.Shell")
    Set WshNetwork = CreateObject("WScript.Network") 

    strWinDir = objShell.ExpandEnvironmentStrings("%SYSTEMROOT%")
    strSysDrive = objShell.ExpandEnvironmentStrings("%SYSTEMDRIVE%")

    Dim aOrigem
    Dim aDestino

    'Alterar esse caminho para salvar os logs
    strLogPath = "\\server\logs\" & WshNetwork.ComputerName & ".txt"

    aOrigem = "\\srv01\biblioteca\RTV.DLL"
    aDestino = strWinDir & "\system32\"
    If objFSO.FolderExists(strSysDrive & "\SysRTV") Then
        If Not objFSO.FileExists(strWinDir & "\system32\rtv.dll") Then

           FlagCopiado = 1

           CopiaArquivo aOrigem,aDestino
     
        End If
     
    End If

    Set ObjFileAppending = ObjFSO.opentextfile(strLogPath, 8, True)
    If FlagCopiado <> 1 Then
        ObjFileAppending.WriteLine "Arquivo não copiado"
    Else
        ObjFileAppending.WriteLine "Arquivo copiado"
    End If


    Sub CopiaArquivo(origem,Destino)
    objFSO.CopyFile origem , destino , true
    objShell.run "regsvr32 /S " & strWinDir & "\system32\rtv.dll",, True
    End sub


    Gabriel Nascimento MCP / MCSA / CCNA http://gabrielnascimentoit.spaces.live.com -- Se for útil vote.
    • Marcado como Resposta Marcelo TI terça-feira, 27 de abril de 2010 19:26
    terça-feira, 27 de abril de 2010 19:01
  • Obrigado Gabriel. Ba tche show.
    terça-feira, 27 de abril de 2010 19:26