Pregunta

es cualquiera que esté familiarizado con una manera de conseguir el grupo de aplicaciones que se asocia con un identificador de proceso? Estoy usando Win32_Process para consultar los servicios w3wp y devolver el PID ahora estoy tratando de conseguir el grupo de aplicación asociado a él.

¿Fue útil?

Solución

Si usted está usando la línea de comandos para averiguarlo ad hoc puede hacerlo también:

El guión ya está colocado en systemroot \ system32 en Windows Server 2003 para simplemente ir a su símbolo del sistema y escriba Iisapp.vbs (.vbs es opcional) y tendrá una lista instantánea de toda la información grupo de aplicaciones que siempre ha querido saber. Es posible que tenga que escribir cscript Iisapp.vbs si CScript no es su defecto host de scripts WSH.

Veamos un ejemplo de la salida:

W3WP.exe PID: 1468 AppPoolId: AppPoolForSite1.com
W3WP.exe PID: 3056 AppPoolId: AppPoolForSite2.com
W3WP.exe PID: 1316 AppPoolId: AppPoolForSite3.com

Directo de la boca del caballo, documentos de Microsoft este .

Otros consejos

En Windows Server 2008 esto ha cambiado.

\ system32 \ inetsrv a encontrar la appcmd.exe

utilizando

  

lista appcmd wp

se obtiene una lista de todos los procesos de trabajo, y que apppool que están sirviendo.

Si se está ejecutando en Windows Server 2008 y sólo desea que el PID, para alimentar a otro script o comando, puede utilizar lo siguiente:

c:\windows\system32\inetsrv\appcmd list wps /apppool.name:"My Application Pool" /text:WP.NAME

Por ejemplo, para crear una secuencia de comandos por lotes que crea un volcado de memoria de un grupo de aplicación determinada, utilice la siguiente:

c:\windows\system32\inetsrv\appcmd list wps /apppool.name:"My Application Pool" /text:WP.NAME > "%temp%\pid.txt"
for /F %%a in (%temp%\pid.txt) do c:\debugger\adplus.exe -hang -o d:\dumps -p %%a
pause

Acabo de descubrir que también se puede encontrar esto en la interfaz de usuario para IIS 7. Seleccione el nodo de servidor web y "procesos de trabajo" abiertos. Esto mostrará el nombre de cada grupo de aplicaciones junto con sus ID y utilización de datos de proceso.

ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;

Trate de trabajar con esto y que debe recibir todo lo que necesita.

Puede utilizar el Administrador de tareas para ver el nombre de usuario bajo el que se ejecuta el proceso (que en general es el mismo que el nombre del grupo de aplicaciones) y el ID del proceso, pero hay que activar estas columnas en el administrador de tareas, y también asume el nombre de usuario que el proceso se ejecuta bajo es el mismo que el nombre del grupo de aplicaciones (que es el valor por defecto por lo que yo sé, a menos que uno es el uso de SharePoint y similares).
También tenga en cuenta que todos los métodos mencionados en esta página sólo se pueden visualizar los procesos que se están ejecutando actualmente, lo que significa que si su proceso en particular se ha apagado debido a ralentí vez que tenga primero en utilizar el sitio con el fin de llevar el proceso en la lista y, en su caso significa que debe acceder primero todos los sitios para asegurarse de que el proceso asociado con ellos es runing.

Esto debería hacerlo.

public string getAppPoolName(int pid)
{            
    ServerManager serverManager = new ServerManager();

    ApplicationPoolCollection apc = serverManager.ApplicationPools;

    foreach (var app in apc)
    {
        var workers = app.WorkerProcesses;

        foreach (var w in workers)
        {                   
            if (w.ProcessId == pid)
            {
                return app.Name;
            }
        }
    }

    return string.Empty;
}

Abra el Administrador de IIS (Ejecutar> Inetmgr), Seleccionar nivel de la raíz del árbol de navegación del sitio izquierda y de “Características Panel de vista” seleccionar “los procesos de trabajo”

Haga clic en “procesos de trabajo” para obtener detalles de todo el proceso de trabajo que se ejecutan actualmente

A partir de esta lista obtendrá aplicación nombre de la agrupación, proceso id

PID del grupo de aplicaciones y dando su nombre:

$AppPoolName = 'AppPoolForSite1'
(Get-ItemProperty IIS:\AppPools\$AppPoolName -Name WorkerProcesses).Collection.processId
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top