Obtenha a localização do httpd.exe no CMD

0

Quando iniciamos o Apache no windows machine httpd.exe inicie seu processo.
Agora podemos determinar se httpd.exe process está rodando ou não usando este comando:

query process httpd.exe

Isso retornará algo assim:

 USERNAME        SESSIONNAME      ID    PID    IMAGE
 >system         services         0    3340   httpd.exe
 >system         services         0    4720   httpd.exe

Agora, é possível obter a localização do httpd.exe usando o comando windows no cmd?
O comando deve retornar este (local de httpd.exe ) :

E:\Installed Softwares\wamp\bin\apache\apache2.4.9\bin\httpd.exe
    
por rakibtg 31.12.2014 / 05:09

2 respostas

1

Não tenho certeza se entendi, mas se você quiser localizar o arquivo no CMD , use onde comand (pesquisa apenas no diretório atual e no caminho) Mas você pode colocar alguns parâmetros. Por exemplo, se eu procurar por java.exe

Microsoft Windows [Version 6.0.6002]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.

C:\Users\Administrator>where java.exe
C:\Windows\System32\java.exe
C:\Program Files\Java\jdk1.6.0_26\bin\java.exe

edit: Você deve tentar pesquisar recursivo e lhe dará a localização, mas funcionou para mim somente se o arquivo estava na mesma partição.

C:\Users\Administrator>where /r c:\ thunderbird.exe
c:\Program Files\Mozilla Thunderbird\thunderbird.exe
    
por 31.12.2014 / 10:11
1

Você pode fazer isso usando o WMI.
Precisamos construir uma consulta WQL para processos que são chamados link , e queremos obter o caminho a partir do qual o executável foi lançado.
Essas informações são mantidas na classe Win32_Process e na documentação nos mostra quais bits de informação precisamos fornecer (por exemplo, Nome ), e quais bits pedir (por exemplo, ExecutablePath ).

Podemos usar o wmic.exe para consultar o WMI da seguinte forma:

wmic process WHERE name="httpd.exe" GET ExecutablePath  

Isso deve produzir algo semelhante a:

C:\Apps\httpd.exe
C:\Apps\httpd.exe
C:\Apps\beta-test\httpd.exe  

Você pode querer obter o CommandLine , em vez do ExecutablePath , pois isso também informará com quais argumentos de linha de comando o processo foi iniciado, e isso pode faz uma grande diferença quando você está restringindo quais processos estão fazendo o que:

wmic process WHERE name="httpd.exe" GET CommandLine  

Isso deve mostrar algo como:

C:\Apps\httpd.exe -config=E:\widgetsales\httpd.conf
C:\Apps\httpd.exe -config=E:\widgetservices\httpd.conf
C:\Apps\beta-test\httpd.exe -config=D:\DevStuff\httpd.conf  

Podemos fazer ainda melhor, obtendo o PID , bem como a linha de comando:

wmic process WHERE name="httpd.exe" GET CommandLine, ProcessID 

CommandLine                                                    ProcessId
C:\Apps\httpd.exe -config=E:\widgetsales\httpd.conf            51064
C:\Apps\httpd.exe -config=E:\widgetservices\httpd.conf         24716
C:\Apps\beta-test\httpd.exe -config=D:\DevStuff\httpd.conf     52728  
    
por 31.12.2014 / 13:38