Obter-ObjetoWmi Computador Remoto: Inventario de Computadores Usando PowerShell
Como posso inventariar computadores remotos usando o PowerShell? A resposta é usando o Get-ObjetoWmi em um computador remoto. Esta postagem fornece um tutorial completo. Continue lendo se você estiver interessado.
Como conectar-se ao WMI remotamente?
O Windows Management Instrumentation (WMI) é uma infraestrutura de gerenciamento integrada ao Windows para consultar dados de gerenciamento e operações. Ele pode ser usado para consultar computadores locais e remotos para obter informações como processos em execução, software instalado, informações do BIOS e muito mais.
O cmdlet Get-WmiObject obtém instâncias de classes WMI ou informações sobre as classes WMI disponíveis. Você pode usar o parâmetro ComputerName para especificar um computador remoto, para que você possa se conectar ao WMI remotamente.
Como usar o PowerShell Get-WmiObject em um computador remoto
A seguir, veremos como usar o PowerShell Get-WmiObject em um computador remoto para inventariar informações do computador.
Se o parâmetro Query for especificado, o cmdlet executará uma instrução da linguagem de consulta WMI (WQL). Se o parâmetro List for especificado, o cmdlet obterá informações sobre as classes WMI disponíveis em um determinado namespace. O parâmetro ComputerName é usado para especificar os computadores. Vamos ver alguns exemplos.
Primeiro, vamos testar a conexão WMI com o computador remoto. O exemplo abaixo permite testar a conexão WMI com o computador remoto chamado PC1.
- Get-WmiObject -query "SELECT * FROM Win32_OperatingSystem" -ComputerName PC1
Você também pode enumerar a lista de compartilhamentos de rede de uma máquina remota usando a classe WMI Win32_Share do PowerShell. Aqui, FT é nada mais do que o cmdlet Format-Table, você pode alterá-lo para FL para exibir o resultado em formato de lista.
- Get-WMIObject -ComputerName "PC1" -Query "SELECT * FROM Win32_Share" | FL
Você pode usar uma sintaxe semelhante a uma consulta SQL para filtrar a classe Win32_Share. O seguinte script PowerShell filtra e lista apenas as pastas compartilhadas de rede (não compartilhamentos ocultos) adicionando o filtro Type=0.
- Get-WMIObject -ComputerName "PC1" -Query "SELECT * FROM Win32_Share Where Type=0" | FT
Mais exemplos
Exemplo 1: Obtém serviços no computador remoto PC1:
- Get-WmiObject -Class Win32_Service -ComputerName PC1
Também é possível obter os serviços em um computador remoto usando Get-WmiObject remote computerCredential. O exemplo a seguir usa o parâmetro Credential. O valor do parâmetro Credential é um nome de conta de usuário. O usuário é solicitado a fornecer uma senha.
- Get-WmiObjectWin32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
Exemplo 2: Parar um serviço no computador remoto PC1:
- (Get-WmiObject -Class Win32_Service -Filter "name="WinRM"' -ComputerName PC1).StopService()
Exemplo 3: Obter o BIOS no computador remoto PC1:
- Get-WmiObject -Class Win32_Bios -ComputerName PC1| Format-List -Property *
Nota
Devemos observar que o cmdlet Get-WmiObject foi substituído por Get-CimInstance no PowerShell 3.0. Por exemplo, o seguinte comando exibe o nome de cada processo em execução junto com seu tempo de kernel do maior para o menor:
- Get-CimInstance -Class Win32_Process -ComputerName DC1 | Select-Object -Property Name,KernelModeTime | Sort-Object KernelModeTime -Descending
AnyViewer: Solução de desktop remoto com interface gráfica para o Windows
Se você deseja uma forma mais direta de consultar dados de gerenciamento e operações de computadores, recomendamos fortemente o AnyViewer, um programa de desktop remoto gratuito que permite controlar um computador remotamente de outro. Ele oferece uma interface gráfica de usuário para um computador remoto, o que é mais direto e intuitivo em comparação com o PowerShell.
Passo 1. Faça o download, instale e inicie o AnyViewer em ambos os computadores.
Passo 2. Vá para Log in e clique em Sign up. (Se você já tiver registrado no site oficial, você pode fazer login diretamente.)
Passo 3: Preencha as informações de registro.
Passo 4: Em seguida, você verá que fez login com sucesso no AnyViewer. Seu dispositivo será atribuído automaticamente à conta à qual você fez login.
Passo 5: Faça login na mesma conta do AnyViewer nos dois dispositivos. Em seguida, clique em Controle com um clique para obter acesso remoto desassistido.
✍Nota: Se você atualizar sua conta para um plano Profissional ou Empresarial, terá mais privilégios:
- Você pode atribuir mais dispositivos para obter acesso remoto desassistido.
- Mais dispositivos conectados serão exibidos, o que é conveniente para visualizar mais históricos de conexão a qualquer momento.
- Você pode se conectar a outro computador no modo de privacidade, o que significa que pode escurecer a tela, bloquear o mouse e o teclado do computador remoto, protegendo ainda mais sua privacidade.
Passo 6: Depois de ter controle total do computador remoto, você pode abrir qualquer programa e gerenciá-lo como se estivesse usando-o na realidade.
A conclusão
Este post fornece um tutorial completo sobre como usar o PowerShell Get-WmiObject em um computador remoto para inventariar informações do computador. Se você deseja uma maneira mais direta e intuitiva de consultar dados de gerenciamento e operações do computador, é aconselhável usar o AnyViewer.