Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador Windows Management Instrumentation. Mostrar todas as postagens
Mostrando postagens com marcador Windows Management Instrumentation. Mostrar todas as postagens

Exponha os segredos do sistema WMI API com o VBA

Exponha os segredos do sistema WMI API com o VBA




A API WMI ( Windows Management Instrumentation ) expõe uma grande variedade de informações dos PCs, incluindo aqueles computadores e servidores que estão remotos. Expor tais técnicas pretende automatizar o WMI como um meio de automatizar as tarefas administrativas nos computadores remotos. Segue uma lista curta de coisas que o WMI pode fazer.
  • Inicia um processo em um computador remoto.
  • Agenda um processo para ser executado em horários específicos em dias específicos.
  • Reinicia um computador remotamente.
  • Consulta os logs de eventos do Windows em um computador local ou remoto.
  • Obtém uma lista de computadores locais ou remotos de:
    • Aplicações
    • Componentes de Hardware
    • Discos, 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?
Segue uma pequena rotina que lista a configuração do adaptador de rede do seu PC. Carregue-o num módulo. Execute-o. Agora considere que olhar para o adaptador de rede WMI poderá fazer muito mais do que apenas isso (e isso sim, é assustador).


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 planilha que facilita a exploração de várias centenas de classes contendo informações sobre a CPU, unidades de disco, memória, sistema operacional, aplicativos, usuários e muito, muito mais. E pode consultar PCs e também servidores remotos, supondo que tenha as credenciais: WMI Query.xlsm.


Usos do WMI Query.xlsm
  • Inventário de todos os PCs em uma rede incluindo todo o hardware e software usado:
    • Win32_SystemEnclosure - Fabricante do PC e número de série
    • Win32_LogicalDisk - Discos com capacidades e espaço livre.
    • Win32_Processor - Especificações do 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 Número de Série
    • WIn32_Printer - Impressoras instaladas
    • Win32_Product - Software instalado
  • WIn32_Account - Listar todas as contas de usuário em um PC ou domínio
  • Win32_ComputerSystem - Veja quem está usando um PC remoto (também Win32_LoggedOnUser )
  • Win32_BaseService - Listar os serviços em execução (ou interrompidos ) em qualquer PC, juntamente com o caminho do serviço e o nome do arquivo.
  • E centenas de coisas mais!

Leia as referências abaixo para saber mais sobre o que esta API pode fazer.

Propriedades da classe WMI NetworkAdapterConfiguration http://msdn.microsoft.com/en-us/library/aa394217(v=vs.85).aspx

Exemplos de script:
Exemplos de Dan Elgaard: http://www.excelgaard.dk/Lib/USERINFO/
Exemplos de script WMI: http://msdn.microsoft.com/en-us/library/aa394585(v=vs.85).aspx



Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets
diHITT - Notícias