Inquiridor
Inventário de Hardware e Software em Rede

Discussão Geral
-
Todas as Respostas
-
Olá Mauro!
Então, eu utilizei por um tempo o PCex para inventário mas ele não tinha a comodidade de um banco de dados para armazenar as informações e gerar relatórios.
Então eu implementei um banco de dados em Access adicionando algumas funcionalidades.
Principais funções:
- Inventario de software
- Lista todos os softwares do terminal
- Inventario de hardware
- HD
- Memoria
- Chave do windows
- Pl mae
- Rede
- Som
- Video
- Etc
- Relatorios necessário gerar com ajuda do Access
- Possibilidade de execução via rede
Link de acesso: http://uploaddearquivos.com.br/download/Inventario.zip
Veja se ajuda. O código é livre e desenvolvido por mim através de codigos do script Guys, Pcex.
Lembrando que é necessário que vc altere a variável strbanco informando aonde vc alocará o banco de dados (access disponibilizado junto ao aplicativo).
[]'s,
Marcellus Bockorny Cardoso
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda" -
-
Sim, aonde eu postei vc irá fazer um download de um arquivo ZIP. Nele possui um banco de dados e um VBS que deve ser alterado a stringo que eu havia passado anteriormente.
[]s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda" -
Bom dia Marcellus
strBanco = "C:\Users\User\Desktop\invRTI\invRTI.mdb"
A linha acima posso direcionar para o meu servidor? \\srv01\Inventário ?
O arquivo invRTI é o Inventário.mdb?
Obrigado pela força
[]'s
Pedro de Almeida - Analista de Sistemas -
Bom dia Marcellus
strBanco = "C:\Users\User\Desktop\invRTI\invRTI.mdb"
A linha acima posso direcionar para o meu servidor? \\srv01\Inventário ?
O arquivo invRTI é o Inventário.mdb?
Obrigado pela força
[]'s
Pedro de Almeida - Analista de SistemasSim, exatamente. Em primeiro caso...execute localmente.
Salve o banco de dados no C:\ em seu computador e após testar execute em rede.
Antes que eu me esqueça Pedro, nos terminais x64 (Seven e Vista) tem que efetuar a configuração do ODBC. Ele irá apresentar erro.
Vou procurar um tutorial e passo a vc.
[]'s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"- Editado Marcellus Bockorny segunda-feira, 6 de dezembro de 2010 14:30 ADD INF
-
Marcellus
Local deu certo, tenho uma máquina Vista 32bits. O banco de dados está no meu server 64bits, instalei o Access, tudo ok.
Está gerando um erro na máquina cliente, creio que seja sobre o ODBC do Server 2008 64bits.
###############################Erro#########################
Script: \\srv01\SYSVOL\empresa\scripts\Inventario.vbs
Linha: 150
Caract: 5
Erro: A operação deve usar uma consulta atualizavél
Código: 80004005
Origem: Microsoft Jet Databe Engine
############################################################
Obrigado!
Pedro de Almeida - Analista de Sistemas -
Marcellus
Local deu certo, tenho uma máquina Vista 32bits. O banco de dados está no meu server 64bits, instalei o Access, tudo ok.
Está gerando um erro na máquina cliente, creio que seja sobre o ODBC do Server 2008 64bits.
###############################Erro#########################
Script: \\srv01\SYSVOL\empresa\scripts\Inventario.vbs
Linha: 150
Caract: 5
Erro: A operação deve usar uma consulta atualizavél
Código: 80004005
Origem: Microsoft Jet Databe Engine
############################################################
Obrigado!
Pedro de Almeida - Analista de SistemasNa verdade não. Quando ele utiliza o ODBC é local.
Tente descomentar a linha On error resume next que fica no topo do inventário.
Efetue os testes e poste!
Lembrando que para terminais x64 eu estou procurando o procedimento ainda.
[]'s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda" -
-
Bom dia Marcellus
Descomentei a linha e a permissão para o acesso ao arquivo, deu certo.
Fico no aguardo do procedimento x64
Obrigado, quebrou um galhão hein
Pedro de Almeida - Analista de SistemasSe devidamente configurado no Firewall a excessão para o PSEXEC vc consegue fazer ele remotamente.
Quanto ao procedimento do X64 esotu com pouco tempo. Execute ele descomentando a linha do ON ERROR e com o retorno jogue no google.
So que tem 1 que funciona os demais não.
[]'s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda" -
Pedro,
Acabei de implantar o OCS Inventory, e uma ferramenta livre que te relaciona tudo em inventario de ativos tais como, Servidores, Desktops, Workstatios, Switchs, Roteadores, etc.. Bom tem varios relatorios e funcionou perfeitamente com integração por LDAP no Active Directory, assim instalei todos os agentes na "estações e servidores" por scritp".
Caracteristicas: Banco mysql, Ferramenta 100% PHP, Agentes com extensão .exe.
Qualquer duvida estamos a vontade para respondelas.
-
-
-
Bom dia Alexandre
Conheço esse software muito bom, só tem que instalar os agentes nas máquinas. Como vc instalou via script os agentes nas máquinas?
Att,
Pedro de Almeida - Analista de SistemasNa verdade não. Vc coloca em um terminal, loga com uma conta com poderes adm(de preferencia administrator) e executa uma linha.
Ex:
psexec @computadores.txt -u DOMAIN\USER - p Senha -d cscript \\seuservidor....
Mais ou menos isso ele loga e inventaria remoto.
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda" -
Bom dia Marcellus
Se eu trocar algum hardware da máquina, o script substituirá os dados existes no banco?
Att,
Pedro de Almeida - Analista de SistemasSim deveria....ele tem uma linha que se o computador existir.....atualize os campos.
Procure no script um update into hardware
[]'s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda" -
Pedro,
Eu crie um script bem simples que faz a instalação do AgentInventoryOCS, e passa um parametro no meu caso: sistemas.inventario.com.br e forcei ao termino da instalação que o Agent enviasse os dados da maquina, como: processador, memoria, bios, placa mãe, softwares instalados, usuarios, dominio, etc... para o OCSServer, vou lhe passar ainda manha da empresa, o script e a regra de instalação.
Bom, particularmente gostei muito do sistema, tem algumas coisa que podemos adcionar a ele mais vou ainda programar, tipo a integração com o Nagios e o Cactus, para enviar SNMP e gerar graficos das maquinas e colocar no nosso NOC.
Sem mais, fique no aguardo que lhe envio amanha.
Alexandre -
-
-
-
Bom dia Marcellus
Vc tem algum script para identificar o serial do Office instalados nas máquinas?
Obrigado!
Pedro de Almeida - Analista de SistemasNa verdade não....eu abandonei o projeto antes.
[]'s,
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda" -
Pedro,
Eu crie um script bem simples que faz a instalação do AgentInventoryOCS, e passa um parametro no meu caso: sistemas.inventario.com.br e forcei ao termino da instalação que o Agent enviasse os dados da maquina, como: processador, memoria, bios, placa mãe, softwares instalados, usuarios, dominio, etc... para o OCSServer, vou lhe passar ainda manha da empresa, o script e a regra de instalação.
Bom, particularmente gostei muito do sistema, tem algumas coisa que podemos adcionar a ele mais vou ainda programar, tipo a integração com o Nagios e o Cactus, para enviar SNMP e gerar graficos das maquinas e colocar no nosso NOC.
Sem mais, fique no aguardo que lhe envio amanha.
Alexandre
Bom dia, Alexamdre.
Poderia me passar o seu scritp. Tem como saber o serial do Office 2007 e 2010 para fazer auditoria ?
Att
Leandro Lorenzo
-
Amigo...respondi algo parecido a pouco..
Uso esse script muito..e sempre me retornou com todas as informações...
Obs o psexec tbm faz ai vc precisa listar as opçows.
Se foi util,vote
-
Olá Mauro!
Então, eu utilizei por um tempo o PCex para inventário mas ele não tinha a comodidade de um banco de dados para armazenar as informações e gerar relatórios.
Então eu implementei um banco de dados em Access adicionando algumas funcionalidades.
Principais funções:
- Inventario de software
- Lista todos os softwares do terminal
- Inventario de hardware
- HD
- Memoria
- Chave do windows
- Pl mae
- Rede
- Som
- Video
- Etc
- Relatorios necessário gerar com ajuda do Access
- Possibilidade de execução via rede
Link de acesso: http://uploaddearquivos.com.br/download/Inventario.zip
Veja se ajuda. O código é livre e desenvolvido por mim através de codigos do script Guys, Pcex.
Lembrando que é necessário que vc altere a variável strbanco informando aonde vc alocará o banco de dados (access disponibilizado junto ao aplicativo).
[]'s,
Marcellus Bockorny Cardoso
" Qm tem boca vai a roma, meu fogão tem 6 e não saiu da cozinha ainda"Olá Marcellus,
estou tentando baixar o arquivo Inventario.zip, mas esta dando erro. O arquivo ainda está disponível?
Lancelotrj -
-
Veja se isso ajuda
' 'Descricao: Inventario automatizado de Servidor 'Autor: Robson Franco 'Data : Abril/2010 'Versão: V1.6 ' On Error Resume Next Set objFSO = CreateObject("Scripting.FileSystemObject") Set objNetwork = CreateObject("WScript.Network") STRcomputer =objNetwork.ComputerName STRTipoServer = "MS" 'Set dtmConvertedDate = CreateObject("WbemScripting.SWbemDateTime") On Error Resume Next Set objFSO = CreateObject("Scripting.FileSystemObject") Set objtextfile = objFSO.deleteFile(STRcomputer & ".HTML") Set objtextfile = objFSO.CreateTextFile(STRcomputer & ".HTML", Forwritting) Objtextfile.writeline "<html>" Objtextfile.writeline "<!-----Inventario de Servidor----->" Objtextfile.writeline "<!-----Robson Franco----->" Objtextfile.writeline "<!-----2010----->" Objtextfile.writeline "<!-----Versão 1.5----->" Objtextfile.writeline "<TFOOT STYLE='font-weight:bold; color:#FFFFFF'>" Objtextfile.writeline "<TR>" Objtextfile.writeline "<TD COLSPAN=5 ALIGN='center'>" Objtextfile.writeline "</B>" Objtextfile.writeline "</TR>" Objtextfile.writeline "</TFOOT>" Lin_log = 4 Set objNetwork = CreateObject("WScript.Network") objtextfile.WriteLine "<center><a name='#menu'></center></a>" objtextfile.WriteLine "<br>" objtextfile.WriteLine "<center><H1><b> Inventario de Servidor </b></h1></center>" objtextfile.WriteLine "<!WKS" & STRcomputer & "Fim_WKS>" objtextfile.WriteLine "<center><H1><b>" & STRcomputer & "</b></h1></center>" ' Objtextfile.writeline "<Font face='arial'><ol>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#SO'>Sistema Operacional</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#proc'>Processadores</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#bios'>Bios e Hardware</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#rede'>Configurações de Rede</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#tcp'>Configurações TCP/IP</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#discos'>Configurações de Discos</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#controladores'>Placas Controladores</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#backup'>Unidade de Backup</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#usuarios'>Usuarios Locais</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#software'>Softwares Instalados</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#servicos'>Status dos Serviços</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#compartilhamentos'>Compartilhamentos Locais</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#impressora'>Impressoras Locais</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#portas'>Portas de Impressora</a></li></h5>" Objtextfile.writeline "<Font face='arial'><h5><li><a href='#event'>Event Viewer</a></li></h5>" Objtextfile.writeline "</ol></font>" ' set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" _ & STRcomputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem") objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#SO'> Sistema Operacional</a></h2></b>" For Each objItem In colItems dtmConvertedDate.Value = objItem.InstallDate dtmInstallDate = dtmConvertedDate.GetVarDate objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<!SO" & objItem.Caption & "Fim_SO>" objtextfile.WriteLine "<Font face='arial'><li><pre>" & objItem.Caption & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Versão..............................: " & objItem.Version & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Service Pack....................: " & objItem.ServicePackMajorVersion & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Outras descrições...........: " & objItem.OtherTypeDescription & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Boot Device.....................: " & objItem.BootDevice & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Diretorio Instalação..........: " & objItem.WindowsDirectory & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Data de Instalação...........: " & dtmInstallDate & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Organização....................: " & objItem.Organization & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Usuario Registrado..........: " & objItem.RegisteredUser & "</font>" objtextfile.WriteLine "<Font face='arial'><li>Serial Numbe...................: " & objItem.SerialNumber & "</font>" Next Set ZoneSet = GetObject("winmgmts:").InstancesOf ("Win32_TimeZone") for each System in ZoneSet objtextfile.WriteLine "<Font face='arial'><li>Time Zone........................:" & System.StandardName & "</font></pre>" next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</font></ul>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' ' Coletando Processadores Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor") objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#proc'> Processadores</a></h2></b>" For Each objItem In colItems objtextfile.WriteLine "<Font face='arial'><ul>" objtextfile.WriteLine "<Font face='arial'><li>" & objItem.Description Objtextfile.writeline "<!Processador>" objtextfile.WriteLine "<Font face='arial'>" & objItem.Name Objtextfile.writeline "<!Fim_Proc>" objtextfile.WriteLine "<Font face='arial'>" & objItem.MaxClockSpeed & " MHZ" objtextfile.WriteLine "</ul>" Next objtextfile.WriteLine "</ul></font>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' ' Coletando Informações da BIOS Set colBIOS = objWMIService.ExecQuery("Select * from Win32_BIOS") objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><a name='#bios'>BIOS / Hardware</a></b>" For Each objbios In colBIOS objtextfile.WriteLine "<Font face='arial'><ul>" objtextfile.WriteLine "<!Fabricante>" objtextfile.WriteLine "<li><pre>Fabricante : " & objbios.Manufacturer objtextfile.WriteLine "<!Fim_Fabricante>" objtextfile.WriteLine "<!Serie>" objtextfile.WriteLine "<li>Serie : " & objbios.SerialNumber objtextfile.WriteLine "<!Fim_Serie>" objtextfile.WriteLine "<li>" & objbios.Name objtextfile.WriteLine "<li>Release Date : " & (Mid(objbios.ReleaseDate, 7, 2)) & "/" & (Mid(objbios.ReleaseDate, 5, 2)) & "/" & (Left(objbios.ReleaseDate, 4)) objtextfile.WriteLine "<li>SMBIOS Version : " & objbios.SMBIOSBIOSVersion objtextfile.WriteLine "<li>BIOS Version : " & CStr(objbios.Version) objtextfile.WriteLine "</ul>" Next ' Coletando Modelo do Equipamento Set colSettings = objWMIService.ExecQuery("Select * from Win32_ComputerSystem") For Each objComputer In colSettings objtextfile.WriteLine "<ul><Font face='arial'>" objtextfile.WriteLine "<!Modelo>" objtextfile.WriteLine "<li><pre>Modelo Equipamento : " & objComputer.Model & "</pre>" objtextfile.WriteLine "<!Fim_Modelo>" objtextfile.WriteLine "</ul>" Next objtextfile.WriteLine "</ul></font>" objtextfile.WriteLine "</ul>" w_tipos = Array("Unknown", "Other", "DRAM,Synchronous DRAM", "Cache DRAM", "EDO,EDRAM", "VRAM", "SRAM", _ "RAM", "ROM", "Flash", "EEPROM", "FEPROM", "EPROM", "CDRAM", "3DRAM", "SDRAM", "SGRAM", _ "RDRAM", "DDR") totalslots = 0 objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2> Memória</h2></b>" Set SlotMem = objWMIService.ExecQuery _ ("Select * from Win32_PhysicalMemoryArray") For Each objItem In SlotMem totalslots = totalslots + objItem.MemoryDevices Next totalpentes = 0 Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory") cont_mem=0 For Each objItem In colItems objtextfile.WriteLine "<Font face='arial'><ul>" objtextfile.WriteLine " <li>" & objItem.Tag objtextfile.WriteLine " " & Int(objItem.Capacity / 1024 / 1024) objtextfile.WriteLine " " & w_tipos(objItem.MemoryType) objtextfile.WriteLine " " & objItem.BankLabel objtextfile.WriteLine " " & "Ativa" totalpentes = totalpentes + 1 objtextfile.WriteLine "</ul>" cont_mem = cont_mem + objItem.Capacity Next objtextfile.WriteLine "<!Memoria" & Int(cont_mem / 1024 / 1024) & "Fim_Mem>" For i = totalpentes + 1 To totalslots objtextfile.WriteLine "<Font face='arial'><ul>" objtextfile.WriteLine " <li> Physical Memory " & i - 1 objtextfile.WriteLine " Vazio" objtextfile.WriteLine "</ul>" Next Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM Win32_PageFileUsage",,48) objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<ul><br>" objtextfile.WriteLine "<Font face='arial'><b> Arquivo de Paginação</b><br>" objtextfile.WriteLine "<table border=2 width=500>" objtextfile.WriteLine "<tr><td><center>localização</center></td><td><center>Tamanho</center></td><td><center>Utilização Atual</center></td><td><center>" & _ "Pico de Utilização</center></td></tr>" For Each objItem In colItems wlinha = " " wlinha = "<center><tr><td>" wlinha=wlinha & objItem.Description & "</td></center><td><center>" wlinha=wlinha & objItem.AllocatedBaseSize & "MB" & "</td></center><td><center>" wlinha=wlinha & objItem.CurrentUsage & "MB"& "</td></center><td><center>" wlinha=wlinha & objItem.PeakUsage & "MB" & "</td></center></tr>" objtextfile.WriteLine wlinha Next objtextfile.WriteLine "</table>" objtextfile.WriteLine "</ul>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' ' Coletando Placas de Rede objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#rede'> Componentes de Rede</a></h2></b>" w_Status = Array("Device is working properly.", _ "Device is not configured correctly.", _ "Windows cannot load the driver for this device.", _ "Driver for this device might be corrupted, or the system may be low on memory or other resources.", _ "Device is not working properly. One of its drivers or the registry might be corrupted.", _ "Driver for the device requires a resource that Windows cannot manage.", _ "Boot configuration for the device conflicts with other devices.", _ "Cannot filter.", "Driver loader for the device is missing.", _ "Device is not working properly; the controlling firmware is incorrectly reporting the resources for the device.", _ "Device cannot start.", "Device failed.", "Device cannot find enough free resources to use.", _ "Windows cannot verify the device's resources.", "Device cannot work properly until the computer is restarted.", _ "Device is not working properly due to a possible re-enumeration problem.", _ "Windows cannot identify all of the resources that the device uses.", _ "Device is requesting an unknown resource type.", "Device drivers need to be reinstalled.", _ "Failure using the VxD loader.", "Registry might be corrupted.", _ "System failure. If changing the device driver is ineffective, see the hardware documentation. Windows is removing the device.", _ "Device is disabled.", "System failure. If changing the device driver is ineffective, see the hardware documentation.", _ "Device is not present, not working properly", _ "Windows is still setting up the device.", "Windows is still setting up the device.", _ "Device does not have valid log configuration.", "Device drivers are not installed.", _ "Device is disabled; the device firmware did not provide the required resources.", _ "Device is using an IRQ resource that another device is using.", _ "Device is not working properly; Windows cannot load the required device drivers.") w_statusinfo = Array("Disconnected", "Connecting", "Connected", "Disconnecting", _ "Hardware Not present", "Hardware disabled", "Hardware malfunction", _ "Media disconnected", "Authenticating", "Authentication succeeded", _ "Authentication failed", "Invalid Address", "Credentials required") Set colItems2 = objWMIService.ExecQuery("Select * from Win32_NetworkAdapter") ' objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2 width=1100>" objtextfile.WriteLine "<tr><td><center>Tipo de Adaptador</center></td><td><center>Descriçao</center></td><td><center>Mac Address</center></td><td><center>" & _ "Fabricante</center></td><td><center>Status</center></td><td><center>Nome da Conexao</center></td><td><center>Velocidade</center></td></tr>" For Each objItem In colItems2 If IsNull(objItem.AdapterType) then wTipo = "-" else wTipo = objItem.AdapterType end if If IsNull(objItem.MACAddress) then wMac = "- " Else wMac = objItem.MACAddress end if ' If IsNull(objItem.StatusInfo) then ' wMac = "-" ' Else ' wMac = objItem.StatusInfo ' end if If IsNull(objItem.NetConnectionID) Then wconnection = "-" Else wconnection = objItem.NetConnectionID end if If IsNull(objItem.speed) Then wvelocidade = "-" Else wvelocidade = objItem.speed end if objtextfile.WriteLine "<Font face='arial'><tr><td>" & wTipo & "</td><td>" & objItem.Description & "</td><td>" & _ wMac & "</td><td>" & objItem.Manufacturer & "</td><td >" & _ w_Status(objItem.ConfigManagerErrorCode) & "</td><td>" & wconnection & "</td><td>" & wvelocidade & "</td></tr>" Next objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" objtextfile.writeline "<li><b><h2><a name='#tcp'> Endereços TCP/IP</a></h2></b>" Set colftp = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") objtextfile.writeline "</ul>" 'objtextfile.writeline "<table border=2 width=100%>" 'objtextfile.writeline "<tr><td><center>Placa de rede</center></td><td><center>Endereco TCP/IP</center></td><td><center>Mascara</center></td><td><center>" & _ '"Tipo IP</center></td><td><center>Default Gateway</center></td><td><center>DNS Server</center></td><td><center>Wins Server</center></td></tr>" 'Nome placa For Each objftp In colftp wlinha = " " wlinha = "<table border=2 width=100% bgcolor=#666666>" wlinha = wlinha + "<tr><td width=15%><center><b><font color=#FFFFFF>Placa</b></center></font></td><td><center><b><font color=#FFFFFF><!Nome_Pl" & objftp.Description & "Fim_Pl>" + objftp.Description + "</td></b></center></font><td><center><b><font color=#FFFFFF>" 'DHCP ou Estatico If objftp.dhcpenabled Then wlinha = wlinha + "IP Dinamico" + "</td></b></center></font><td>" Else wlinha = wlinha + "IP Estatico" + "</td></b></center></font><td>" End If wlinha = wlinha + "</table>" wlinha = wlinha + "<table border=1 width=100%>" 'End_IP wlinha = wlinha + "<tr><td width=15%>IP</td><td>" strIP = 1 For Each StrIPaddress In objftp.IPAddress wlinha = wlinha + "<!IP" & strIP & StrIPaddress & "Fim_IP" & strIP & ">" + StrIPaddress + "</td><td>" strIP = strIP + 1 'objtextfile.writeline "<!End_IP" & StrIPaddress & "Fim_IP>" Next 'Mascara wlinha = wlinha + "<tr><td width=15%>Mascara</td><td>" For Each strIPSubnet In objftp.IPSubnet wlinha = wlinha + strIPSubnet + "</td><td>" Next 'Gateway wlinha = wlinha + "<tr><td width=15%>Gateway</td><td>" For Each strDefaultIPGatewaY In objftp.DefaultIPGateway If IsEmpty(strDefaultIPGatewaY) Then wlinha = wlinha + "0.0.0.0" + "<br>" Else wlinha = wlinha + strDefaultIPGatewaY + "<br>" End If Next wlinha = wlinha + "</td><td>" 'DNS wlinha = wlinha + "<tr><td width=15%>DNS</td><td>" For Each strDNSServer In objftp.DNSServerSearchOrder If IsEmpty(strDNSServer) Then wlinha = wlinha + "0.0.0.0" + "<br>" Else wlinha = wlinha + strDNSServer + "<br>" End If Next wlinha = wlinha + "</td><td>" 'Wins wlinha = wlinha + "<tr><td width=15%>Wins</td><td>" If IsNull(objftp.WINSPrimaryServer) Then wlinha = wlinha + "0.0.0.0" + "<br>" Else wlinha = wlinha + objftp.WINSPrimaryServer + "<br>" End If If IsNull(objftp.WINSSecondaryServer) Then wlinha = wlinha + "0.0.0.0" + "</td><td>" Else wlinha = wlinha + objftp.WINSSecondaryServer + "</td><td>" End If wlinha = wlinha + "</table>" objtextfile.writeline wlinha Next objtextfile.writeline "</table>" objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#discos'> Discos Locais</a></h2></b>" objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2 width=400>" objtextfile.WriteLine "<tr><td><center>Unidade</center></td><td><center>Tipo</center></td></tr>" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colDisks = objWMIService.ExecQuery ("Select * from Win32_LogicalDisk") For Each objDisk in colDisks W_ID= objDisk.DeviceID Select Case objDisk.DriveType Case 1 W_ID1 = "Tipo de Disco não Detectado" Case 2 W_ID1 = "Disco removível ou Disquete" Case 3 W_ID1 = "Disco Rígido Local" Case 4 W_ID1 ="Drive de Rede" Case 5 W_ID1 = "Unidade de CD" Case 6 W_ID1 ="RAM disk." Case Else W_ID1 = "Tipo de Disco não Detectado" End Select objtextfile.WriteLine "<tr><td><center>" & W_ID & "</center></td><td><center>" & W_ID1 & "</center></td></tr>" Next objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#discos'> Detalhe dos Discos Locais</a></h2></b>" objtextfile.WriteLine "</ul>" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colDiskDrives = objWMIService.ExecQuery ("Select * from Win32_DiskDrive") strDisk = 1 For each objDiskDrive in colDiskDrives objtextfile.WriteLine "<Font face='arial'><ul>" objtextfile.WriteLine "<li><pre><b>Caption: </b>" & ltrim(objDiskDrive.Caption ) objtextfile.WriteLine "<li><b>Device ID: </b>" & ltrim(objDiskDrive.DeviceID ) objtextfile.WriteLine "<li><b>Interface Type: </b>" & ltrim(objDiskDrive.InterfaceType) objtextfile.WriteLine "<li><b>Manufacturer: </b>" & ltrim(objDiskDrive.Manufacturer) objtextfile.WriteLine "<li><b>Model: </b>" & ltrim(objDiskDrive.Model) objtextfile.WriteLine "<li><b>Name: </b>" & ltrim(objDiskDrive.Name) objtextfile.WriteLine "<li><b>Partitions: </b>" & ltrim(objDiskDrive.Partitions) objtextfile.WriteLine "<li><b>SCSI Bus: </b>" & ltrim(objDiskDrive.SCSIBus) objtextfile.WriteLine "<li><b>SCSI Logical Unit: </b>" & ltrim(objDiskDrive.SCSILogicalUnit) objtextfile.WriteLine "<li><b>SCSI Port: </b>" & ltrim(objDiskDrive.SCSIPort) objtextfile.WriteLine "<li><b>SCSI TargetId: </b>" & ltrim(objDiskDrive.SCSITargetId) objtextfile.WriteLine "<!Disco" & strDisk & int(objDiskDrive.Size/1024/1024) & "Fim_Disco" & strDisk & ">" objtextfile.WriteLine "<li><b>Size: </b>" & int(objDiskDrive.Size/1024/1024) & "MB" objtextfile.WriteLine "<li><b>Status: </b>" & ltrim(objDiskDrive.Status) objtextfile.WriteLine "</ul>" strDisk = strDisk+1 Next ' ' Discos lógicos Const HARD_DISK = 3 objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#discos'> Partições</a></h2></b>" Set colDiskDrives = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType = " & HARD_DISK & "") objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2 width=500>" objtextfile.WriteLine "<tr><td><center>Unidade</center></td><td><center>Tamanho (MB)</center></td><td><center>Tipo Partiçao" & _ "</td><td><center>Espaço Livre(MB)</center></td></tr>" For Each objdisk In colDiskDrives objtextfile.WriteLine "<tr><td><center>" & objdisk.DeviceID & "</center></td><td><center>" & " " _ & Int(objdisk.Size / 1024 / 1024) & "</center></td><td><center>" & " " _ & objdisk.FileSystem & "</center></td><td><center>" _ & int(objDisk.FreeSpace/(1024*1024)) & "</center></td></tr>" Next objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#discos'> Unidade de CDROM</a></h2></b>" objtextfile.WriteLine "</ul>" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive") For Each objItem in colItems objtextfile.WriteLine "<tr><td>" & objItem.Caption & "</td></td>" Next ' 'Controladoras de Disco" objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#controladoras'> Controladoras de Disco</a></h2></b>" objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2 width=600>" objtextfile.WriteLine "<tr><td><center>Controladora</center></td><td><center>Driver</center></td><td><center>Fabricante</center></td><td><center>Status</center></td></tr>" Set wplaca = objWMIService.ExecQuery("Select * from Win32_SCSIController") For Each objplaca In wplaca objtextfile.WriteLine "<tr><td>" & objplaca.Name & "</td><td>" & " " _ & objplaca.DriverName & "</td><td>" & " " _ & objplaca.Manufacturer & "</td><td>" & " " _ & objplaca.Status & "</td></tr>" Next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</table>" ' objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#backup'> Unidade de Backup</a></h2></b></ul>" objtextfile.WriteLine "<table>" Set wfita = objWMIService.ExecQuery("Select * from Win32_TapeDrive") For Each objfita In wfita objtextfile.WriteLine "<tr><td>" & objfita.Caption & "</td></tr>" Next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' 'Coleta usuarios locais Set colAccounts = GetObject("WinNT://" & STRcomputer & "") Set colGroups = GetObject("WinNT://" & STRcomputer & "") colAccounts.Filter = Array("user") colGroups.Filter = Array("group") objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#usuarios'> Usuarios Locais</a></h2></b>" objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2 width=1000>" objtextfile.WriteLine "<tr><td><center>Login</center></td><td><center>Nome Completo</center></td><td><center>Descriçao</center>" & _ "</td><td><center>Status</center></td><td><center>Grupos</center></td></tr>" For Each objUser In colAccounts Wgrupo = " " If objUser.AccountDisabled then wstatus = "Inativa" Else wstatus = "Ativa" End if For Each objGroup In colGroups For Each objuserMBR In objGroup.Members If objuserMBR.Name = objUser.Name Then Wgrupo = Wgrupo & objGroup.Name & "<br>" End If Next Next If Len(objUser.FullName) <= 1 Then wfulname = "-" Else wfulname = objUser.FullName End If If Len(objUser.Description) <= 1 then wdescricao = "-" else wdescricao = objUser.Description end if objtextfile.WriteLine "<tr><td>" & objUser.Name & "</td><td>" & " " _ & wfulname & "</td><td>" _ & wdescricao & "</td><td>" _ & wstatus & "</td><td>" _ & Wgrupo & "</td></tr> " Next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' 'Coleta Software Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE strKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" strEntry1a = "DisplayName" strEntry1b = "QuietDisplayName" strEntry2 = "InstallDate" strEntry3 = "VersionMajor" strEntry4 = "VersionMinor" strEntry5 = "EstimatedSize" objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#software'> Softwares Instalados</a></h2></b>" objtextfile.WriteLine "</ul>" 'objtextfile.WriteLine "<table border=2>" objtextfile.WriteLine "<tr><td>Software / Hotfix</td></tr>" Set objReg = GetObject("winmgmts://" & STRcomputer & _ "/root/default:StdRegProv") objReg.EnumKey HKLM, strKey, arrSubkeys For Each strSubkey In arrSubkeys ' wlinha = "<tr><td>" wlinha="" intRet1 = objReg.GetStringValue(HKLM, strKey & strSubkey, _ strEntry1a, strValue1) If intRet1 <> 0 Then objReg.GetStringValue HKLM, strKey & strSubkey, _ strEntry1b, strValue1 End If If strValue1 <> "" Then wlinha = wlinha + strValue1 '+ "</td><td>" End If objReg.GetDWORDValue HKLM, strKey & strSubkey, _ strEntry3, intValue3 objReg.GetDWORDValue HKLM, strKey & strSubkey, _ strEntry4, intValue4 If intValue3 <> "" Then wlinha = wlinha + intValue3 + "." + intValue4 '"</td></tr>" End If If Len(wlinha) > 8 Then objtextfile.WriteLine wlinha + "<br>" End If Next objtextfile.WriteLine "</ul>" 'objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' 'Coleta Serviços Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & STRcomputer & "\root\cimv2") Set colListOfServices = objWMIService.ExecQuery _ ("Select * from Win32_Service") objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#servicos'> Serviços</a></h2></b>" objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2 width=800>" objtextfile.WriteLine "<tr><td><b><center>Serviço</center></b></td><td><b><center>Startup</center></b></td><td><b>" & _ "<center>Status</center></b></td><td><b><center>Usuario de Startup</center></b></b></td></tr>" For Each objService In colListOfServices if objService.State = "Stopped" then wfonte= "<font color=red>" else wfonte = "<font>" end if objtextfile.WriteLine "<tr><td><i>" & wfonte & objService.Caption & "</font></i></td><td><i>" & _ wfonte & objService.StartMode & "</font></i></td><td><i>" & _ wfonte & objService.State & "</font></i></td><td><i>" & _ wfonte & objService.StartName & "</font></i></td></tr>" Next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' 'Coleta Tamanho dos Diretorios Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & STRcomputer & "\root\cimv2") Set colShares = objWMIService.ExecQuery("Select * from Win32_Share") objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#compartilhamentos'>Compartilhamentos</a></h2></b>" objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2>" objtextfile.WriteLine "<tr><td><b><center>Compartilhamento</center></b></td><td><b><center>" & _ "Caminho</center></b></b></td></tr>" For Each objShare In colShares objtextfile.WriteLine "<tr><td><i>" & objShare.Name & "</i></td><td><i>" _ & objShare.Path & "</i></td></tr>" Next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' 'Coleta Impressora Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & STRcomputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_PrinterDriver") objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#impressora'> Drivers de Impressoras</a></h2></b>" objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2>" objtextfile.WriteLine "<tr><td><b>Impressora Local</b></b></td></tr>" For Each objPrinter In colInstalledPrinters objtextfile.WriteLine "<tr><td><i>" & objPrinter.Name & "</i></td></tr>" Next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' 'Coleta portas de impressora Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & STRcomputer & "\root\cimv2") Set colPorts = objWMIService.ExecQuery _ ("Select * from Win32_TCPIPPrinterPort") objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#portas'> Portas de Impressora</a></h2></b>" objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2>" objtextfile.WriteLine "<tr><td><b><center>Impressora Local</center></b></td><td><b><center>Endereco Host</center></b></td><td><b>" & _ "<center>Porta</center></b></td><td><b><center>Protocolo</center></b></b></td></tr>" For Each objPort In colPorts objtextfile.WriteLine "<tr><td><i>" & objPort.Description & "</i></td><td><i>" & _ objPort.HostAddress & "</i></td><td><i>" & _ objPort.Name & "</i></td><td><i>" & _ objPort.PortNumber & "</i></td><td><i>" & _ objPort.Protocol & "</i></td></tr>" Next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" ' objtextfile.WriteLine "<ul>" objtextfile.WriteLine "<li><b><h2><a name='#event'> Event Viewer</a></h2></b>" objtextfile.WriteLine "</ul>" objtextfile.WriteLine "<table border=2 width=100>" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate,(Security)}!\\" & _ strComputer & "\root\cimv2") Set colLogFiles = objWMIService.ExecQuery _ ("Select * from Win32_NTEventLogFile " _ & "Where LogFileName='Security'") For Each objLogFile in colLogFiles objtextfile.WriteLine "<tr><td><i>Security </i></td><td><i>" & int(objLogfile.MaxFileSize/1024) & "MB" & "</i></td><td><i>" Next Set colLogFiles = objWMIService.ExecQuery _ ("Select * from Win32_NTEventLogFile " _ & "Where LogFileName='application'") For Each objLogFile in colLogFiles objtextfile.WriteLine "<tr><td><i>Application</i></td><td><i>" & int(objLogfile.MaxFileSize/1024) & "MB" & "</i></td><td><i>" Next Set colLogFiles = objWMIService.ExecQuery _ ("Select * from Win32_NTEventLogFile " _ & "Where LogFileName='system'") For Each objLogFile in colLogFiles objtextfile.WriteLine "<tr><td><i>System</i></td><td><i>" & int(objLogfile.MaxFileSize/1024) & "MB" & "</i></td><td><i></tr>" Next objtextfile.WriteLine "</ul>" objtextfile.WriteLine "</table>" Objtextfile.writeline "<font size=1 face='Helvetica' color=blue><a href='#menu'>Menu</a></font>" Objtextfile.writeline "</html>" wscript.echo "FIM"
[]´s Se for util, vote. Assim você ajuda a manter o fórum organizado e ajuda outros a acharem as respostas http://robsonfr.wordpress.com http://www.linkedin.com/in/robsonfranco -
-
No caso do S.O 64, vai listar somente os sw instalados...mas estou homologando o script para rodar em 64
[]´s Se for util, vote. Assim você ajuda a manter o fórum organizado e ajuda outros a acharem as respostas http://robsonfr.wordpress.com http://www.linkedin.com/in/robsonfranco -
Pedro,
Da uma olhada nesse blog, ve se ajuda com seu problema
http://gambin.wordpress.com/2010/07/16/j-ouviu-falar-do-pstools-part-ii/
[]´s Se for util, vote. Assim você ajuda a manter o fórum organizado e ajuda outros a acharem as respostas http://robsonfr.wordpress.com http://www.linkedin.com/in/robsonfranco -
-
-
Marcellus,
Se puder publique o código na Galeria do Technet, como ele é extenso fica muito ruim aqui no fórum.
Fábio de Paula Junior
-
-
Seria este?
PCex Inventory
Fábio de Paula Junior
-