Ir para conteúdo
Fórum Script Brasil
  • 0

Log de Arquivo Gerado


syquara

Pergunta

Amigos, bom dia!

Sou novo na programação e gostaria da ajuda de vocês!

Criei um codigo para gerar inventario dos computadores da rede porém quando o registro roda ele salva para cada maquina um .txt com as configurações, o que quero é unificar os "logs" tipo ter apenas um .txt e a medida que as maquinas forem rodando o script alimente esse .txt. O script .vbs roda através de um .bat abaixo vou colocar os dois codigos.

Agradeço desde já.

Código do .bat

cscript //nologo \\srvbkp\inventario\script\inventario.vbs > \\srvbkp\inventario\relatorio\%COMPUTERNAME%.txt
Código .vbs
strComputer = "."

Public nomemaq, ip1, ip2, ip3, usuario,software, spack, processador, ram1, ram2, ram3, ram4
Public hd1, hd2, mb

Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colNome = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")
For Each objNome in colNome
    nomemaq = objNome.Name
    'Wscript.Echo "Hostname: " & objNome.Name
Next

Set IPConfigSet = objWMIService.ExecQuery _
    ("Select IPAddress from Win32_NetworkAdapterConfiguration ")
For Each IPConfig in IPConfigSet
    If Not IsNull(IPConfig.IPAddress) Then 
        For i=LBound(IPConfig.IPAddress) _
            to UBound(IPConfig.IPAddress)
                If ((i = 0) And (Len(IPConfig.IPAddress(i)) <= 15)) Then
                ip1 = IPConfig.IPAddress(i) 
                elseif ((i = 1) And (Len(IPConfig.IPAddress(i)) <= 15)) Then
                ip2 = IPConfig.IPAddress(i) 
                elseif ((i = 2) And (Len(IPConfig.IPAddress(i)) <= 15)) Then
                ip3 = IPConfig.IPAddress(i)
                End If
                'WScript.Echo "IP: " & IPConfig.IPAddress(i)
        Next
    End If
Next



Set colUsuario = objWMIService.ExecQuery("Select * From Win32_ComputerSystem")
For Each objUsuario in colUsuario
    usuario = objUsuario.UserName
    'Wscript.Echo "Usuario: " & objUsuario.UserName
Next


Set colSO = objWMIService.ExecQuery("Select * From Win32_OperatingSystem")
For Each objSO in colSO
    software = objSO.Caption & " " & objSO.Version
    'Wscript.Echo "*** SOFTWARE ***" & vbCrLf & "Sistema: " & objSO.Caption & " " & objSO.Version
    spack = "Service Pack " & objSO.ServicePackMajorVersion
    'Wscript.Echo "Service Pack: " & objSO.ServicePackMajorVersion
Next


Set colCPU = objWMIService.ExecQuery("Select * From Win32_Processor")
For Each objCPU in colCPU
    processador = objCPU.DeviceID & ": " & objCPU.Name
    'Wscript.Echo "*** HARDWARE ***" & vbCrLf & "Processador " & objCPU.DeviceID & ": " & objCPU.Name
Next


Set colRAM = objWMIService.ExecQuery("Select * From Win32_PhysicalMemory")
For Each objRAM in colRAM
    If objRAM.DeviceLocator = "ChannelA-DIMM0" Then
    ram1 = objRAM.DeviceLocator & ": " & objRAM.Capacity /1024\1024 & "MB" 
    elseif objRAM.DeviceLocator = "ChannelB-DIMM0" Then
    ram2 = objRAM.DeviceLocator & ": " & objRAM.Capacity /1024\1024 & "MB"
    elseif    objRAM.DeviceLocator = "ChannelC-DIMM0" Then
    ram3 = objRAM.DeviceLocator & ": " & objRAM.Capacity /1024\1024 & "MB"
    elseif objRAM.DeviceLocator = "ChannelD-DIMM0" Then
    ram4 = objRAM.DeviceLocator & ": " & objRAM.Capacity /1024\1024 & "MB"
    End If     
    'Wscript.Echo "RAM - Modulo " & objRAM.DeviceLocator & ": " & objRAM.Capacity /1024\1024 & "MB"
Next


Set colHDD = objWMIService.ExecQuery("Select * From Win32_DiskDrive")
For Each objHDD in colHDD
    
    If objHDD.Index = 0 Then
    hd1 = objHDD.Model & " (" & objHDD.Size /1000\1000\1000 & "GB)" 
    else
    hd2 = objHDD.Model & " (" & objHDD.Size /1000\1000\1000 & "GB)"
    End If
        
    'Wscript.Echo "Disco rigido " & objHDD.Index & ": " & objHDD.Model & " (" & objHDD.Size /1000\1000\1000 & "GB)"
Next

Set colMB = objWMIService.ExecQuery("Select * From Win32_BaseBoard")
For Each objMB in colMB
    mb = objMB.Manufacturer & " " & objMB.Product
    'Wscript.Echo "Placa mae: " & objMB.Manufacturer & " " & objMB.Product
Next

Wscript.Echo nomemaq &"|"& ip1 &"|"& ip2 &"|"& ip3 &"|"& usuario &"|"& software _ 
                      &"|"& spack &"|"& processador &"|"& ram1 &"|"& ram2 &"|"& ram3 &"|"& ram4 &"|"& hd1 &"|"& hd2 &"|"& mb &"|"& Date

Set objWMIService = Nothing

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Então kara , notei q você quer gerar um arquivo q ficara acumulando as informações

Pra fazer isso é bem simples

On Error Resume Next 'vai servir pra n interromper o funcionamento da aplicação , caso de algum problema
Dim arquivo As Long 'cria a variavel arquivo do tipo long

arquivo = FreeFile ' define ela como arquivo livre

Open "C:\Teste.txt" For Append As arquivo 'esta especificando o diretorio q ficara o arquivo
Print #arquivo, "Texto" 'onde esta entre parenteses fica as informações q você quer gravar , no caso pode tirar e colocar uma variavel q estiver com os valores q quiser

Close arquivo 'fecha o arquivo

Espero q ajude

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...