Estou procurando uma ferramenta ou 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 do aplicativo iniciador).
84
Estou procurando uma ferramenta ou 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 do aplicativo iniciador).
Você pode fazer isso usando o Process Explorer .
Basta passar o mouse sobre um processo para ver os argumentos da linha de comando usados para iniciá-lo:
Como alternativa, você pode abrir as propriedades do processo e inspecionar a linha de comando ali:
Você também pode fazer isso sem o Process Explorer, usando o serviço WMI do Windows. Execute o seguinte no prompt de comando:
Se você deseja despejar a saída em um arquivo (facilita a leitura), use a opção / OUTPUT:
fonte
Pode-se também conseguir isso usando o 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):
Para o Windows 8:
Uma coluna de linhas de comando será adicionada às colunas exibidas no momento.
fonte
PowerShell para o resgate.
Encontrar:
E mate como bônus:
Você pode executá-lo diretamente do PowerShell ou de um ps1, se tiver a configuração do sistema. Eu detalho a configuração irrestrita do script em i kill zombies with powershell , bem como outros truques do powershell ...
fonte
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) fazer isso, talvez com processos iniciando várias vezes e / ou finalizando rapidamente, ou talvez registrando ocorrências em um período mais longo, existe um caminho para isso usando o Process Monitor .
Basicamente, ele registra vários eventos no sistema; nesse caso, podemos apenas filtrar o evento "Process Start" e o nome do processo que queremos monitorar, conforme mostrado abaixo:
Em seguida, mantenha o monitor de processo em execução e faça o que fizer para que o processo que você deseja registrar seja executado. Você pode ver na coluna "Detalhe" ou na "Linha de comando" (depende de como você as configura) os argumentos da linha de comando. Por exemplo:
É claro que dessa maneira você pode extrair muito mais informações relacionadas, como qual é o diretório de trabalho, quais variáveis de ambiente foram passadas no processo, etc ... Também é fácil exportar os resultados para um arquivo.
fonte
Ao usar o CygWin , se eu iniciar um processo Python , este é um exemplo de linha de comando:
Mas o Process Explorer vê apenas o exe principal:
(observe o "caminho: [Erro ao abrir a mensagem do processo]" (consulte EDIT-1)). Mesmos resultados para
tasklist
:Então, o único truque que eu conheço até agora, é encontrá-lo via shell do CygWin Bash
pgrep
:É útil saber disso, 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 poder visualizar o processo de um administrador (o que me parece mais lógico: a linha de comando completa pode ter alguns parâmetros como senhas ), portanto, precisamos executar o CygWin Bash no modo Administrador elevado .
EDIT-1: Esse problema não ocorrerá se você executar o Process Explorer como administrador. Obrigado por apontar, @Pacerier.
fonte
[Error opening process message]
vá para
run
ou vástart
e pesquise:fonte
/m
mostra módulos carregados (DLLs, etc.) e/svc
mostra serviços hospedados em cada processo.