Posso usar o PowerShell 1.0 para os processos da lista junto com seus PIDs e linhas de comando?
-
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:
-
Run Process Explorer (a partir SysInternals) e descobrir qual w3wp.exe foi iniciado com foo.site.com em sua linha de comando.
-
Observe a identificação de processo (PID) desse processo w3wp.exe.
-
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
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