Você pode fazer isso usando o Process Explorer .
Passe o mouse sobre um processo para ver os argumentos da linha de comando usados para iniciá-lo:
Alternativamente,vocêpodeabriraspropriedadesdoprocessoeinspecionaralinhadecomandoali:
Estou procurando uma ferramenta ou um método para descobrir quais parâmetros de linha de comando foram passados para um programa, por exemplo, quando ele foi executado por outro programa (cenário de aplicativo de inicialização).
Você pode fazer isso usando o Process Explorer .
Passe o mouse sobre um processo para ver os argumentos da linha de comando usados para iniciá-lo:
Alternativamente,vocêpodeabriraspropriedadesdoprocessoeinspecionaralinhadecomandoali:
Você pode fazer isso sem o Process Explorer, também, usando o serviço WMI do Windows. Execute o seguinte no prompt de comando:
WMIC path win32_process get Caption,Processid,Commandline
Se você quiser despejar a saída em um arquivo (facilita a leitura), use a opção / OUTPUT:
WMIC /OUTPUT:C:\Process.txt path win32_process get Caption,Processid,Commandline
Também é possível conseguir isso usando Gerenciador de tarefas .
Abra o gerenciador de tarefas (por CTRL-SHIFT-ESC, CTRL-ALT-DELETE ou qualquer outro método).
Para o Windows 7 (e provavelmente o Windows XP):
No Windows 8:
Uma coluna de linhas de comando será adicionada às colunas exibidas no momento.
PowerShell para o resgate.
Encontrar:
Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | where {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'}
E mate como bônus:
Get-WmiObject Win32_Process -Filter "name = 'perl.exe'" | where {$_.CommandLine -eq '"C:\strawberry\perl\bin\perl.exe" t/Server_PreFork.t'} | ForEach-Object { Invoke-WmiMethod -Path $_.__Path –Name Terminate }
Você pode executá-lo diretamente do powershell ou de um ps1 se tiver a configuração do seu sistema. Eu detalhe a configuração de script irrestrito em eu mato zumbis com powershell bem como outros truques do powershell ...
As respostas anteriores são ótimas caso o processo já esteja em execução e não seja encerrado em breve. No entanto, se você precisar (como eu fiz) para fazer isso talvez com processses iniciar várias vezes e / ou terminar rapidamente, ou talvez registrar ocorrências em um longo período de tempo, há uma maneira de isso usando Monitor de processos .
Basicamente, ele registra vários eventos no sistema. Nesse caso, podemos filtrar apenas o evento "Início do processo" e o nome do processo que queremos monitorar, conforme mostrado abaixo:
Emseguida,mantenhaomonitordeprocessoemexecuçãoefaçaoquefizerparaobteroprocessoquedesejaregistraremlog.Vocêpodevernacoluna"Detalhe" ou na coluna "Linha de comando" (depende de como você os configura) os argumentos da linha de comando. Por exemplo:
Claro que desta forma você pode extrair muito mais informações relacionadas, como o diretório de trabalho, quais variáveis de ambiente foram passadas no processo, etc ... Também é fácil exportar os resultados em um arquivo.
Ao usar CygWin , se eu iniciar um processo Python , este é um exemplo de linha de comando:
c:\CygWin\bin\python2.7.exe /usr/local/bin/sudoserver.py
Mas o Process Explorer só vê o exe principal:
(observeocaminho:[Erroaoabriramensagemdoprocesso]" (ver EDIT-1)).
Mesmos resultados para tasklist
:
C:\>tasklist | find "python" /i
python2.7.exe 5740 Console 1 15.312 KB
Então, o único truque que conheço até agora é encontrá-lo via shell do BgWin Bash pgrep
:
Luis@Kenobi /cygdrive/c/
$ pgrep -f -l server.py
5740 /usr/bin/python2.7 /usr/local/bin/sudoserver.py
É útil saber isso, desde que o CygWin coabite sem problemas no Windows e você possa usá-lo para executar muitos programas POSIX e Python.
EDIT: No Windows, você não parece precisar de privilégios de administrador para a lista de tarefas. No CygWin você precisará deles para visualizar o processo de um administrador (o que parece mais lógico para mim: a linha de comando completa pode ter alguns parâmetros como senhas dentro), então devemos executar o > CygWin Bash em elevado Modo de Administrador .
EDIT-1: Esse problema não ocorrerá se você executar o Process Explorer como administrador. Obrigado por apontar, @Pacerier.
vá para run
ou goto start
e pesquise:
tasklist -m
tasklist -svc