Pessoal,
Quem não precisa fazer inventário de hardware e software das máquinas de rede? Pois é, eu mesmo já investi tempo percorrendo sites e fóruns em busca disto.
Esta semana recebi um script desenvolvido por um amigo, o Tiago Leal. O cara é administrador de rede e tinha a mesma necessidade, então escreveu um script muito bom que busca informações e exporta para um arquivo de texto para onde você desejar, não é realmente funcional!?
Vou colar na integra o e-mail do Tiagão abaixo, pois ele explica como o negócio funciona, afinal é o pai da criança, rs.
"Segue o script de inventário. Frisando que ainda é um script beta, porém funcionou em todos os testes que eu fiz.
O script realiza a busca por informações de SO, Processador, Memória, Disco, Impressoras e Programas e as imprime em um arquivo txt com o nome do usuário e computador de onde foi executado. O nome do arquivo gerado, como falei, segue a seguinte definição: “username – pcname”.
Antes de executar o script é necessário passar o local onde será salvo o arquivo com as informações. Na linha 12 há uma variável “strPath”, deve-se inserir o caminho, com uma barra no final, onde será salvo o arquivo entre as aspas após o “=”. Ex: strPath = “C:\caminho_do_script\”
Antes de realizar a coleta, o script verifica se já existe o arquivo com base no nome do próprio arquivo, se o mesmo usuário executa-lo em máquinas diferentes ele criará um arquivo de coleta para cada máquina mas mantendo o username. Caso o usuário execute o script mais de uma vez estando na mesma máquina, será criado apenas uma coleta, sendo necessário mover ou apagar o arquivo de coleta existente no local indicado para poder realizar uma outra coleta da mesma máquina.
Para fins de informação, no inicio do arquivo de coleta há a data e horário em que foi realizada a a busca pelas informações."
Segue o script, basta colá-lo em um notepad e salvar como VBS. Peço a todos a gentileza de manter os crédito do Tiago Leal.
' list_devices.vbs' Script que coleta informações do micro' Autor Tiago Leal - tiagoleal@petroeng.com.br' Version 1 - Setembro 2009
Set objNetWork = CreateObject("Wscript.Network")
strUserName = objNetwork.UserNamestrPcName = objNetwork.ComputerName
strNameFile = strUserName&" - "&strPcName
strPath = "E:\"
strPathFile = strPath & strNameFile &".txt"
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(strPathFile) Then
WScript.Quit
End If
Set objFile = fso.OpenTextFile(strPathFile,2,True)
If Err.Number = 76 Then
MsgBox "O script não pode criar/acessar o local indicado. Acesso Negado." WScript.Quit End if
Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime")
objFile.WriteLine("----- Arquivo Criado em "& Date &" às "& Time &" -----")objFile.WriteBlankLines(2)
strSO = "Win32_OperatingSystem"strProcessor = "Win32_Processor"strMemory = "Win32_PhysicalMemory"strDisk = "Win32_DiskDrive"strPrint = "Win32_Printer"
Set objWMI = GetObject("winmgmts:")
' SISTEMA
objFile.WriteLine("SISTEMA:")objFile.WriteBlankLines(1)
Set colWMI = objWMI.InstancesOF(strSO)
For Each strWMI In colWMI
objFile.WriteLine(strWMI.Caption) dtmConvertedDate.Value = strWMI.InstallDate strData = dtmConvertedDate.GetVarDate objFile.WriteLine("Data de instalação: "& strData) objFile.WriteLine("Service Pack: "& strWMI.ServicePackMajorVersion) NextobjFile.WriteBlankLines(1)
' PROCESSADOR
objFile.WriteLine("PROCESSADOR:")objFile.WriteBlankLines(1)
Set colWMI = objWMI.InstancesOF(strProcessor)
For Each strWMI In colWMI
objFile.WriteLine(strWMI.Name &" "& strWMI.MaxClockSpeed &"Mhz") NextobjFile.WriteBlankLines(1)
' MEMÓRIA
objFile.WriteLine("MEMÓRIA:")objFile.WriteBlankLines(1)
Set colWMI = objWMI.InstancesOF(strMemory)
For Each strWMI In colWMI
objFile.WriteLine(strWMI.Capacity/1024/1024 &"MB") NextobjFile.WriteBlankLines(1)
' DISCO
objFile.WriteLine("DISCO:")objFile.WriteBlankLines(1)
Set colWMI = objWMI.InstancesOF(strDisk)
For Each strWMI In colWMI
objFile.WriteLine("Tamanho Total: "& Round(strWMI.Size/1024/1024/1024) &"GB") Next
objFile.WriteBlankLines(1)' IMPRESSORASobjFile.WriteLine("IMPRESSORAS:")objFile.WriteBlankLines(1)
Set colWMI = objWMI.InstancesOF(strPrint)
For Each strWMI In colWMI
objFile.WriteLine(strWMI.DeviceId) Next
objFile.WriteBlankLines(1)
' PROGRAMAS
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINEstrComputer = "."strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"strEntry1a = "DisplayName"strEntry1b = "QuietDisplayName"strEntry2 = "InstallDate"strEntry3 = "VersionMajor"strEntry4 = "VersionMinor"strEntry5 = "EstimatedSize"
Set objReg = GetObject("winmgmts://" & strComputer & _ "/root/default:StdRegProv")objReg.EnumKey HKLM, strKey, arrSubkeys
objFile.WriteLine("Programas Instalados:")objFile.WriteBlankLines(1)
For Each strSubkey In arrSubkeys intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, strEntry1a, strValue1) If intRet1 <> 0 Then objReg.GetStringValue HKLM, strKey & strSubkey, strEntry1b, strValue1 End If If strValue1 <> "" Then objFile.WriteLine("Nome: " & strValue1) End If objReg.GetStringValue HKLM, strKey & strSubkey, strEntry2, strValue2 If strValue2 <> "" Then objFile.WriteLine("Data de Instalação: " & strValue2) End If objReg.GetDWORDValue HKLM, strKey & strSubkey, strEntry3, intValue3 objReg.GetDWORDValue HKLM, strKey & strSubkey, strEntry4, intValue4 If intValue3 <> "" Then objFile.WriteLine("Versão: " & intValue3 & "." & intValue4) End If objReg.GetDWORDValue HKLM, strKey & strSubkey, strEntry5, intValue5 If intValue5 <> "" Then objFile.WriteLine("Tamanho Estimado: " & Round(intValue5/1024, 3) & " MB") End If
objFile.WriteBlankLines(1)
Next
' O script demora cerca de 6 segundos para completar a coleta das informações.
É isto ai pessoal, aproveitem este script porque ficou show de bola! Tiagão, obrigado cara!!!
Abraço a todos!
Assinar:
Postar comentários (Atom)
O que é o Microsoft Azure afinal?
Salve! Não dá pra falar mais que é uma "onda", a nuvem pegou de verdade e já faz um tempo que para os mais inseridos no contexto...
-
Pessoal, Quem não precisa fazer inventário de hardware e software das máquinas de rede? Pois é, eu mesmo já investi tempo percorrendo sites ...
-
Caros, Para aqueles que utilizam o System Center Virtual Machine Manager para dar um " improve" no gerenciamento das VMs seja...
-
Olá meu amigos, Estou iniciando uma série de videos de treinamento respondendo a demanda do pessoal em sala de aula. Para inaugurar estou po...
Salve Salve galerinha que baba colorido !!!
ResponderExcluirTestei o script e funciona que é uma beleza.
Parabéns Tiagão ... salvou a pele de um monte de ser humano !!! Rs
Apenas não consegui rodar o script em pasta oculta.
Valeu ... show de bola !!!
Fala Marcelo Blz??? cara to tentando usar esse script, mais estou tento problemas na seguinte linha
ResponderExcluirSet objReg = GetObject("winmgmts://" & strComputer & _ "/root/default:StdRegProv")
Tem como me ajudar??? Ainda Não achei o erro!!!
Valeu ai pra quem puder me ajudar...
posso adaptar esse script em java ou php rsrsrsrs
ResponderExcluirqueria fazer algo com que amarrace os dados do cliente no server ao perfil da maquina.. com linux
tipo php+ vb
MValente, retire o "&_", e teste novamente
ResponderExcluirBom dia! Adaptei o script para enviar os dados no mysql. Porém estou querendo saber os drivers odbc q estão em cada maquina e não sei como. Alguém poderia ajudar?
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirMsgBox "O script não pode criar/acessar o local indicado. Acesso Negado." WScript.Quit End if
ResponderExcluirEssa é linha 12 pra mim... nao entendi no que teria que mudar.