Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Не получается вернуть статус с помощь класса ApplicationPool (ROOT\WebAdministration) (http://forum.oszone.net/showthread.php?t=332871)

andr_mozg 30-01-2018 17:38 2794597

Не получается вернуть статус с помощь класса ApplicationPool (ROOT\WebAdministration)
 
Доброго времени суток.
http://wutils.com/wmi/root/webadmini...tstate_methods
Необходимо получить значения метода GetState

Если делаю простой селект

Код:

Select Name from ApplicationPool
то получаю имя первого в списке (видимо) пула

Не как не вкурю как прикрутить условие с указанием конкретного имени пула и получение его статуса через метод GetState

Спасибо.

Kazun 31-01-2018 09:57 2794692

PowerShell:

Код:

$wmi = Get-WMIObject -Namespace root\WebAdministration ApplicationPool
$wmi | Select Name,@{n="State";e={$_.GetState().ReturnValue}}

#Вывод
PS > $wmi | Format-Table Name,Managed* -Auto

Name                ManagedPipelineMode ManagedRuntimeLoader ManagedRuntimeVersion
----                ------------------- -------------------- ---------------------
DefaultAppPool                        0 webengine4.dll      v4.0
Classic .NET AppPool                  1 webengine4.dll      v2.0
.NET v2.0 Classic                      1 webengine4.dll      v2.0
.NET v2.0                              0 webengine4.dll      v2.0
.NET v4.5 Classic                      1 webengine4.dll      v4.0
.NET v4.5                              0 webengine4.dll      v4.0

PS > $wmi | Select Name,@{n="State";e={$_.GetState().ReturnValue}}

Name                State
----                -----
DefaultAppPool          1
Classic .NET AppPool    1
.NET v2.0 Classic        1
.NET v2.0                1
.NET v4.5 Classic        1
.NET v4.5                1

Теперь получим статус опредленного пула, скажем DefaultAppPool:

Код:

PS > Invoke-WmiMethod  -Path '\\IIS\root\WebAdministration:ApplicationPool.Name="DefaultAppPool"' -Name GetState

ReturnValue      : 1
PSComputerName  :

PS > (Get-WmiObject -Namespace root\WebAdministration -Query "Select Name FROM ApplicationPool WHERE Name='DefaultAppPool'").GetState()

ReturnValue      : 1
PSComputerName  :


andr_mozg 31-01-2018 10:44 2794696

Kazun, Вот тоже самое только одним селектом
Select Name FROM ApplicationPool WHERE Name='DefaultAppPool' - это сработает а вот куда присобачить GetState() ума не приложу. Софт для которого мастырю селект больно не поворотлив.

Kazun 31-01-2018 11:23 2794704

Никак,нельзя с WQL выполнить WMI метод. Должны быть API для работы с WMI,которые позволяют выполнять метод.

andr_mozg 31-01-2018 12:02 2794715

Kazun, Понятно... Спасибо

Serguei Kouzmine 02-02-2018 05:29 2795229

по моему для этого написаны модули - они по-разному называются для iis 7 и 8 но в-общем они позволяют

Import-Module WebAdministration
Get-Item "IIS:\AppPools\DefaultAppPool"

Name State Applications
---- ----- ------------
DefaultAppPool Started Default Web Site


Время: 23:00.

Время: 23:00.
© OSzone.net 2001-