para quem tiver curiosidade de mexer com isso, segue um link bem legal:
Site
A API do Windows Management Instrumentation (WMI) expõe uma grande quantidade de informações sobre PCs, incluindo PCs e servidores remotos. Ele pretende ser um meio de “automatizar tarefas administrativas em computadores remotos”. Aqui está uma pequena lista de coisas que o WMI pode fazer.
- Inicie um processo em um computador remoto.
- Programe um processo para ser executado em horários específicos em dias específicos.
- Reinicialize um computador remotamente.
- Consultar os logs de eventos do Windows em um computador local ou remoto.
- Obter uma lista de computadores locais ou remotos de:
- Aplicações
- Componentes de hardware
- Unidades de disco, capacidades e espaço livre
- Usuários locais e de domínio
- Impressoras e configurações de impressora
- Configurações de rede
- Com o VBA, o Excel pode acessar o WMI e se tornar uma ferramenta poderosa para técnicos de PC, administradores de rede e auditores de sistema
Quer um vislumbre?
Aqui está uma pequena rotina para listar a configuração do adaptador de rede do seu PC. Carregue em um módulo. Executá-lo. Agora considere isto é apenas olhando para o adaptador de rede. O WMI pode fazer muito mais do que isso (assustador).
Código: Selecionar todos
Sub WMI()
Dim oWMISrvEx As Object 'SWbemServicesEx
Dim oWMIObjSet As Object 'SWbemServicesObjectSet
Dim oWMIObjEx As Object 'SWbemObjectEx
Dim oWMIProp As Object 'SWbemProperty
Dim sWQL As String 'WQL Statement
Dim n As Long 'Generic Counter
sWQL = "Select * From Win32_NetworkAdapterConfiguration"
Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
For Each oWMIObjEx In oWMIObjSet
'Put a STOP here then View > Locals Window to see all properties
If Not IsNull(oWMIObjEx.IPAddress) Then
Debug.Print "IP:"; oWMIObjEx.IPAddress(0)
Debug.Print "Host name:"; oWMIObjEx.DNSHostName
For Each oWMIProp In oWMIObjEx.Properties_
If IsArray(oWMIProp.Value) Then
For n = LBound(oWMIProp.Value) To UBound(oWMIProp.Value)
Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value(n)
Next
Else
Debug.Print oWMIProp.Name, oWMIProp.Value
End If
Next
End If
Next
End Sub
Quer ver mais?
Aqui está uma pasta de trabalho que facilita a exploração de centenas de classes contendo informações sobre nossa CPU, unidades de disco, memória, sistema operacional, aplicativos, usuários e muito, muito mais. E também pode consultar PCs e servidores remotos, desde que você tenha as credenciais.
WMI Query.xlsm:
https://www.dropbox.com/s/908851y0esoqt ... .xlsm?dl=1
Usos para o WMI Query.xlsm
Inventário de todos os PCs em uma rede, incluindo todo o hardware e software usando:
Win32_SystemEnclosure - fabricante do PC e número de série
Win32_LogicalDisk - Discos com capacidades e espaço livre.
Win32_Processor - especificações de CPU
Win32_PhysicalMemoryArray - RAM / tamanho da memória instalada
Win32_VideoController - adaptador gráfico e configurações
Win32_OnBoardDevice - Dispositivos da placa-mãe
Win32_OperatingSystem - Qual versão do Windows com o número de série
WIn32_Printer - impressoras instaladas
Win32_Product - Software Instalado
WIn32_Account - Lista todas as contas de usuários em um PC ou domínio
Win32_ComputerSystem - Veja quem está usando atualmente um PC remoto (também Win32_LoggedOnUser )
Win32_BaseService - Lista serviços em execução (ou parados) em qualquer PC, juntamente com o caminho e o nome do arquivo do serviço.
E centenas mais!
Leia as referências abaixo para saber mais sobre o que essa API pode fornecer.
Apresentações e Primers :
Introdução ao Scripting:
http://technet.microsoft.com/pt-br/scri ... 40112.aspx
Sesame Script:
http://technet.microsoft.com/pt-br/libr ... 76991.aspx
WMI Introdução:
http://msdn.microsoft.com/en-us/library ... s.85).aspx
Scripting de scripts ADSI:
http://technet.microsoft.com/library/ee156524.aspx
Scripting Guys:
http://blogs.technet.com/b/heyscripting ... in-active- directory.aspx
Referências :
WMI Scripting Primer:
http://technet.microsoft.com/library/ee156560.aspx
Introdução ao WMI:
http://msdn.microsoft.com/pt-br/library ... s.85).aspx
Referência do WMI:
http://msdn.microsoft.com/en-us/library ... s.85).aspx
Classes do WMI Win32:
http://msdn.microsoft.com/en-us/library/aa394084 (v = vs.85) .aspx
Objetos da API de script WMI:
http://msdn.microsoft.com/en-us/library ... s.85).aspx
Método WMI ExecQuery: http: // msdn. microsoft.com/en-us/library/aa393866(v=vs.85).aspx
Propriedades da classe WMI NetworkAdapterConfiguration
http://msdn.microsoft.com/pt-br/library ... s.85).aspx
Exemplos de script : exemplos de
Dan Elgaard:
http://www.excelgaard.dk/Lib/USERINFO/
Exemplos de script do WMI:
http://msdn.microsoft.com/en-us/library ... 5(v=vs.85). aspx
Consulta do WMI por exemplo:
http://www.codeproject.com/Articles/463 ... by-Example
Galeria Technet:
http://gallery.technet.microsoft.com/sc ... -36eb-4979 -baf1-432e53c43f93
Diretório Ativo:
http://www.billrowell.com/2009/09/10/pr ... er-object/
NOTA! Veja o que os outros estão dizendo sobre isso.
De:
http://www.makeuseof.com/tag/see-pc-inf ... ba-script/
Construindo seus módulos WMI
A inspiração para esse código vem de um recurso fantástico do Google Sites chamado Além do Excel . O exemplo mostrado há uma sub-rotina chamada WMI (), que passa todas as informações de rede do seu computador para a área de depuração do ambiente de programação do Excel.