На моей виртуальной машине Windows Server 2019 я использовал это для проверки рабочего процесса:
C:\users\rpresser> ipmo webadministration
c:\users\rpresser> dir iis:\myappPoolName\workerprocesses
Process State Handles Start Time
Id
-------- ----- ------- ----------
4728 Running
Это неверно. Процесс 4728 ранее был рабочим процессом для этого пула приложений, но был прекращен. Я попробовал restart-webapppool и даже iisreset, и оба они запустили новые рабочие процессы для моего пула приложений, но выходные данные dir продолжают ссылаться на процесс 4728.
Вы начали новый сеанс PowerShell? Возможно, информация обновляется/заполняется при загрузке psdrive IIS? Я бы попытался принудительно импортировать модуль веб-администрирования и/или попробовать новый сеанс PowerShell.
@DougMaurer - новый сеанс PowerShell предоставил правильный PID рабочего процесса, но после повторной переработки пула приложений новый сеанс PowerShell имел тот же дефект.
@LexLi Да, модуль IISAdministration предоставил правильный процесс, но перезапуск пула приложений имел тот же эффект: после перезапуска старый процесс все равно возвращался.
Вы пропустили повторный импорт модуля. Как я уже сказал, поставщик IIS даже не создается, пока модуль не загружен. Возможно, простой Import-Module WebAdministration -Force освежит его. Пожалуйста дай нам знать.
@DougMaurer Нет, реимпорт не сработал. astebin.com/knK0TKUY





Даже удаление iis psdrive и его воссоздание не обновляет PID рабочего процесса. Я бы рекомендовал придерживаться этого, чтобы надежно получить PID в существующем сеансе.
$pid = powershell.exe -noprofile -command "Import-Module WebAdministration;dir IIS:\AppPools\MyAppPool\WorkerProcesses\"
Это запустит временный сеанс PowerShell и предоставит вам точную информацию.
Это сработало отлично, и я добавил его в свою личную вики с важными фрагментами Powershell.
Можете ли вы получить правильную информацию о рабочем процессе через IISAdministration? Learn.microsoft.com/iis/get-started/whats-new-in-iis-10/…