Posso usar o PowerShell 1.0 para os processos da lista junto com seus PIDs e linhas de comando?

StackOverflow https://stackoverflow.com/questions/1039874

  •  22-07-2019
  •  | 
  •  

Pergunta

EDIT por OP: A minha pergunta pressupõe que PowerShell era a melhor ferramenta para este trabalho. Existe uma maneira mais simples de alcançar meu objetivo. Um amigo me disse sobre: ?? Iisapp.vbs . Ele exibe exatamente o que eu precisar de informações sem a necessidade de PowerShell.


Eu estou trabalhando com dezenas de sites ASP.NET executado localmente e quando eu quiser depurar um determinado site chamado, por exemplo, foo.site.com eu passar pelas seguintes etapas:

  1. Run Process Explorer (a partir SysInternals) e descobrir qual w3wp.exe foi iniciado com foo.site.com em sua linha de comando.

  2. Observe a identificação de processo (PID) desse processo w3wp.exe.

  3. No Visual Studio anexar a esse processo de identificação.

Existe uma maneira de escrever um script PowerShell que irá imprimir os argumentos PID e Comando linha de cada processo w3wp.exe em execução no meu computador?

Quando eu executo get-processo w3wp eu recebo:

> get-process w3wp

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    688      28    44060      64576   226     2.75    196 w3wp
    750      26    48328      68936   225     3.38   1640 w3wp
    989      36    54596      83844   246     4.92   1660 w3wp
    921      33    54344      80576   270     4.24   5624 w3wp
    773      27    48808      72448   244     2.75   5992 w3wp

No Line Command informações: (

Obrigado!

EDIT:. Eu estou procurando os argumentos de linha de comando que foram passados ??para w3wp

Foi útil?

Solução

gwmi win32_process -filter "name='w3wp.exe'" | select name,processId,commandLine

Deve fazer o truque. Acho estranho que powershell não fornece informações de linha de comando, por padrão. Nota:. Eu só testei no PowerShell 2.0, mas como usar o WMI, ele deve funcionar em 1,0

EDIT: a versão final usado por Tim Stewart (a problema de exibição EVITAR, VER comentário):
gwmi win32_process -filter "name='powershell.exe'" | format-table -autosize name,processId,commandLine

Outras dicas

Meu primeiro instinto foi usar get-process e olhar para a propriedade StartInfo:

get-process w3wp | select-object id, path, @{Name="Args";Expression = {$_.StartInfo.Arguments}}

Infelizmente, isso não funciona porque $ _. StartInfo.Argments é sempre nulo. WMI funciona, apesar de tudo.

get-wmiobject win32_process -filter "name='w3wp.exe'" | select-object processid, commandline

Isso deve funcionar:

get-process | format-table Id, Caminho

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top