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