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ą.
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 .
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ą.
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
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.
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.
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.
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;
}
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
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
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