Como obter informações adicionais sobre o processo no PowerShell?

1

No powershell, se eu fizer 'get-process', recebo

PS C:\Documents and Settings\Hello\Desktop> get-process -name excel

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    312      11    13124      25196   121    58.50  13180 EXCEL

No entanto, usando o ps do mkstools eu consigo:

C:\workarea\>ps | grep -i excel
13964 12:17 "C:\PROGRA~1\MICROS~2\Office10\excel.exe"  
16144 31:12 "C:\PROGRA~1\MICROS~2\Office10\excel.exe"  
13180  0:58 "C:\Program Files\Microsoft Office\Office10\excel.exe" /automation -Embedding
12624  0:56 "C:\Program Files\Microsoft Office\Office10\excel.exe" /automation -Embedding
12388  0:00 "C:\Program Files\Microsoft Office\Office10\excel.exe" /automation -Embedding

Eu só quero matar esses objetos de automação do Excel e ps pode me ajudar a distinguir os tempos de execução do Excel que criei através do menu Iniciar e aqueles via chamadas COM.

Como posso mostrar o bit /automation -Embedding no powershell?

    
por Anthony Kong 21.03.2012 / 00:31

1 resposta

1

Get-Process não retorna as informações da linha de comando, mas a classe WMI Win32_Process. Para usar classes WMI, use o cmdlet Get-WMIObject que tem o alias gwmi .

Para matar todos os objetos de automação do Excel, você pode usar:

gwmi Win32_Process -filter "Name='Excel.exe'"| 
    where { $_.CommandLine -match '/automation -Embedding' }|
    foreach { $_.Terminate() }
    
por 21.03.2012 / 14:45

Tags