Присвойте возвращаемое значение Get-WebAppPoolState переменной в Powershell - PullRequest
6 голосов
/ 01 июля 2011

Этот код:

модуль импорта WebAdministration

Get-WebAppPoolState AppPoolName

Создает следующий вывод:

Значение - -
Остановился

Но этот код:

модуль импорта WebAdministration

$ state = Get-WebAppPoolState AppPoolName

WRITE-HOST $ state

Производит этот вывод:

Microsoft.IIs.PowerShell.Framework.CodeProperty

Когда я получаю состояние пула приложений с помощью Get-WebAppPoolState, мне нужно какое-то логическое значение для присвоения переменной, чтобы я мог использовать ее в условном выражении.

Я не могу использовать строку Microsoft.IIs.PowerShell.Framework.CodeProperty.

Как мне исправить это?

Ответы [ 3 ]

16 голосов
/ 01 июля 2011

Get-WebAppPoolState не возвращает строку, а объект типа CodeProperty.Вам понадобится свойство Value для этого объекта, то есть:

$state = (Get-WebAppPoolState AppPoolName).Value;

Я предполагаю, что какой-то преобразователь экрана запускается в первом случае, когда он записывается в вывод, поэтому отображается Stopped, но не для записи вhost, так что вместо этого вы получаете представление объекта по умолчанию (которое является именем типа).

0 голосов
/ 30 ноября 2017

Другой подход заключается в использовании командлета Select-Object с ExpandProperty для получения значения 1 или более свойств от объекта.

$pool = "app-pool-name"
$state = Get-WebAppPoolState $pool | Select -ExpandProperty Value
Write-Host $state
0 голосов
/ 01 июля 2011

Не проверено, но работает ли это лучше?

$state = $(Get-WebAppPoolState AppPoolName) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...