2011-07-01 59 views
4

返回值給一個變量此代碼:分配一個Get-WebAppPoolState在Powershell的

進口模塊WebAdministration

獲取-WebAppPoolState AppPoolName

產生以下輸出:

Value - -
停止

但這代碼:

進口模塊WebAdministration

$狀態= GET-WebAppPoolState AppPoolName

WRITE-HOST $狀態

生成此輸出:

Microsoft.IIs.PowerShell.Framework.CodeProperty

當我使用Get-WebAppPoolState應用程序池的狀態,我需要某種形式的布爾值賦給變量這樣我就可以在條件語句中使用它。

我不能使用Microsoft.IIs.PowerShell.Framework.CodeProperty行。

我該如何糾正?

+0

任何最終解決方案?然後標記答案。 – Kiquenet

回答

0

未經測試,但這樣做效果更好嗎?

$state = $(Get-WebAppPoolState AppPoolName) 
+0

謝謝你的迴應,但不幸的是,它給出了相同的輸出。 –

12

Get-WebAppPoolState不返回字符串,而是返回CodeProperty類型的對象。你會想從該對象,即Value屬性:

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

我相信一些顯示轉換器在第一種情況下踢時,它被寫入這就是爲什麼停止顯示,但不用於寫入主機,以便輸出你會得到默認的對象表示(這是類型名稱)。

+0

非常感謝。這很有道理。問題解決了! –

+2

將此答案標記爲已接受。 :) – JasonMArcher

0

另一種方法是使用Select-Object cmdlet和ExpandProperty從對象中獲取1個或多個屬性的值。

$pool = "app-pool-name" 
$state = Get-WebAppPoolState $pool | Select -ExpandProperty Value 
Write-Host $state