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 'SWbemServicesExDim oWMIObjSet As Object 'SWbemServicesObjectSetDim oWMIObjEx As Object 'SWbemObjectExDim oWMIProp As Object 'SWbemPropertyDim sWQL As String 'WQL StatementDim n As Long 'Generic CountersWQL = "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 propertiesIf Not IsNull(oWMIObjEx.IPAddress) ThenDebug.Print "IP:"; oWMIObjEx.IPAddress(0)Debug.Print "Host name:"; oWMIObjEx.DNSHostNameFor Each oWMIProp In oWMIObjEx.Properties_If IsArray(oWMIProp.Value) ThenFor n = LBound(oWMIProp.Value) To UBound(oWMIProp.Value)Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value(n)NextElseDebug.Print oWMIProp.Name, oWMIProp.ValueEnd IfNextEnd IfNextEnd 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.
Introduções:
Introdução ao Scripting: http://technet.microsoft.com/en-us/scriptcenter/dd940112.aspx
Script de Sesame: http://technet.microsoft.com/en-us/library/ee176991.aspx
WMI Introdução: http://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx
ADSI Scripting Primer: http://technet.microsoft.com/library/ee156524.aspx
Scripting Guys: http://blogs.technet.com/b/heyscriptingguy/archive/2005/06/28/how-can-i-list-all-the-attributes-used-by-the-computer-class-in -active-directory.aspx
Introdução ao Scripting: http://technet.microsoft.com/en-us/scriptcenter/dd940112.aspx
Script de Sesame: http://technet.microsoft.com/en-us/library/ee176991.aspx
WMI Introdução: http://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx
ADSI Scripting Primer: http://technet.microsoft.com/library/ee156524.aspx
Scripting Guys: http://blogs.technet.com/b/heyscriptingguy/archive/2005/06/28/how-can-i-list-all-the-attributes-used-by-the-computer-class-in -active-directory.aspx
Referências:
WMI Scripting Primer: http://technet.microsoft.com/library/ee156560.aspx
WMI Introdução: http://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx
Referência WMI: http://msdn.microsoft.com/en-us/library/aa394572(v=vs.85).aspx
WMI Win32 Classes: 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/aa393259(v=vs.85).aspx
Método WMI ExecQuery: http://msdn.microsoft.com/en-us/library/aa393866(v=vs.85).aspx
WMI Win32 Classes: 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/aa393259(v=vs.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/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
Consulta WMI por exemplo: http://www.codeproject.com/Articles/46390/WMI-Query-Language-by-Example
Galeria Technet: http://gallery.technet.microsoft.com/scriptcenter/b03c3611-36eb-4979-baf1-432e53c43f93
Active Directory: http://www.billrowell.com/2009/09/10/properties-in-a-active-directory-computer-object/
Galeria Technet: http://gallery.technet.microsoft.com/scriptcenter/b03c3611-36eb-4979-baf1-432e53c43f93
Active Directory: http://www.billrowell.com/2009/09/10/properties-in-a-active-directory-computer-object/
Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com
Nenhum comentário:
Postar um comentário