PID puli aplikacji IIS

Czy ktoś zna sposób na uzyskanie puli aplikacji powiązanej z identyfikatorem procesu ? Używam Win32_Process do odpytywania usług W3WP i zwracania PID teraz próbuję powiązać pulę aplikacji z nią.

Author: John Saunders, 2009-04-14

9 answers

Jeśli używasz tylko wiersza poleceń, aby to rozgryźć ad-hoc, możesz to zrobić również:

Skrypt jest już umieszczony w systemroot\system32 na Windows Server 2003, więc po prostu przejdź do wiersza polecenia i wpisz iisapp.vbs (the .vbs jest opcjonalny) i będziesz miał natychmiastową listę wszystkich informacji o puli aplikacji, które zawsze chciałeś wiedzieć. Może być konieczne wpisanie cscript iisapp.vbs jeśli CScript nie jest Twoim domyślnym hostem skryptów WSH.

Zobaczmy przykład wyjścia:

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

Prosto z paszczy konia, Microsoft dokumentuje to .

 17
Author: Jim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-05 19:59:35

Na Windows Server 2008 to się zmieniło.

W systemroot \ system32 \ inetsrv znajdziesz appcmd.exe

Using

Appcmd list wp

Otrzymasz listę wszystkich procesów workera i aplikacji, które obsługują.

 88
Author: Morten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-31 17:32:13

Jeśli używasz systemu Windows Server 2008 i chcesz tylko PID, aby przesłać go do innego skryptu lub polecenia, możesz użyć tego:

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

Na przykład, aby utworzyć skrypt wsadowy, który tworzy zrzut pamięci określonej puli aplikacji, Użyj tego:

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
 8
Author: Grant Holliday,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-22 23:12:07

Właśnie odkryłem, że można to również znaleźć w interfejsie użytkownika dla IIS 7. Wybierz węzeł serwera WWW i otwórz "procesy robocze". Spowoduje to wyświetlenie nazwy każdej puli aplikacji wraz z jej identyfikatorem procesu i szczegółami wykorzystania.

 6
Author: Dan Bailiff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-11 14:52:39
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;

Spróbuj z tym pracować, a to powinno dać ci to, czego potrzebujesz.

 3
Author: Chris Ballance,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 19:10:31

Można użyć menedżera zadań, aby wyświetlić nazwę Użytkownika, pod którą działa proces (który ogólnie jest taki sam jak nazwa puli aplikacji) i identyfikator procesu, ale trzeba włączyć te kolumny w Menedżerze Zadań, a także zakłada, że nazwa użytkownika, pod którą działa Proces, jest taka sama jak nazwa puli aplikacji (która jest domyślna, o ile wiem, chyba że ktoś używa Sharepoint i tym podobne).
Należy również pamiętać, że wszystkie metody wymienione na tej stronie mogą wyświetlać tylko procesy, które aktualnie uruchomione, co oznacza, że jeśli dany proces został zamknięty z powodu czasu bezczynności, musisz najpierw skorzystać z witryny, aby wprowadzić proces na Listę, a w Twoim przypadku oznacza to, że powinieneś najpierw uzyskać dostęp do wszystkich witryn, aby upewnić się, że proces z nimi związany jest uruchomiony.

 3
Author: yoel halb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-18 21:05:43

To powinno wystarczyć.

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;
}
 1
Author: P. Raphael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-01 17:53:31

Otwórz Menedżera usług IIS (Uruchom > Inetmgr), Wybierz poziom główny z lewego drzewa nawigacji witryny i z "Panelu widoku funkcji "wybierz" procesy robocze "

Kliknij na "procesy robocze", aby uzyskać szczegóły wszystkich procesów roboczych, które są obecnie uruchomione

Z tej listy otrzymasz nazwę puli aplikacji, ID procesu

 1
Author: sachin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-02 15:14:52

PID puli aplikacji podając jej nazwę:

$AppPoolName = 'AppPoolForSite1'
(Get-ItemProperty IIS:\AppPools\$AppPoolName -Name WorkerProcesses).Collection.processId
 0
Author: Angel Abad Cerdeira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-18 02:13:02