wmic pendurado no servidor remoto?

1

Com base nas informações da minha pergunta anterior, estou tentando aprender wmic.

Estou brincando tentando descobrir quais processos estão usando a maioria dos recursos em um servidor remoto. O que eu consegui encontrar está perto do final deste post. Ele funciona muito bem na minha máquina local, mas quando eu psexec em um servidor (Windows 2003 ou 2008) e tenta executar este comando, ele trava quase todas as vezes. Eu não posso nem mesmo ctrl + c fazer com que pare. Eu usei RDP (usando um nome de usuário diferente) para entrar em uma das máquinas onde este comando trava. O nome de usuário que envia o comando do psexec mostra dois itens listados no Gerenciador de Tarefas, cmd e wmic. Eles permaneceram no Gerenciador de Tarefas várias horas depois de enviar o comando. Quando eu termino, libera meu console na minha máquina local.

Eu tentei pesquisar motivos que podem estar pendentes e não consigo encontrar nada. Eu também perguntei a um dos meus administradores de sistema, mas esses caras estão sempre muito ocupados para ajudar um cara modesto do NOC (legitimamente, eles estão realmente ocupados). Alguma idéia do que pode estar errado?

wmic path win32_perfformatteddata_perfproc_process where (PercentProcessorTime != 0) get Name, PercentProcessorTime, IDProcess
    
por duzzy 06.07.2014 / 19:29

1 resposta

3

Recomendaria enfaticamente que você se afastasse do WMIC.EXE e usasse o PowerShell. O PowerShell permite usar o RPC para acessar a interface WMI do servidor remoto, negando a necessidade do PsExec. Embora o PsExec seja uma ferramenta útil, eu só o usaria se fosse absolutamente necessário, pois ele cria um serviço no servidor remoto, o serviço remoto recém-criado gera um processo para executar o seu código, e o serviço deve então ser auto- excluir. No entanto, encontrei servidores que falharam nos serviços PsExec e vários processos órfãos que falharam por um ou outro motivo. Então, com a minha pregação, aqui está um equivalente usando o PowerShell:

Get-WmiObject -ComputerName "<REMOTE-SERVER-NAME>" -class Win32_PerfFormattedData_PerfProc_Process -Impersonation Impersonate -Filter "PercentProcessorTime != 0 and name != '_Total'" | Select-Object name, PercentProcessorTime, IDProcess
    
por 06.07.2014 / 19:55