web-dev-qa-db-ja.com

PowershellスクリプトでIISのアプリケーションプールIDを取得する

IISなどの特定の名前のアプリケーションプールIDを取得しようとしています。例:Test

以下のコードを介してそれを取得することに成功しましたが、すべてのウェブアプリをループしたくないのですが、名前を指定することで簡単に取得できますか?

Import-Module WebAdministration
Get-WebApplication

$webapps = Get-WebApplication
$list = @()
foreach ($webapp in get-childitem IIS:\AppPools\)
{
    $name = "IIS:\AppPools\" + $webapp.name
    $item = @{}
    if ($webapp.name -eq 'Test')
    {        
        $item = $webapp.processModel.identityType   
        break
    }
}


echo $webapp.processModel.identityType
8
Joseph

パスを組み合わせてアイテムを取得するだけです。これは動作します:

$item = Get-Item (Join-Path 'IIS:\AppPools\' 'Test') | 
   select -ExpandProperty processModel | 
   select -expand identityType
6
Martin Brandl

厳密にはOPが望んでいたものではありませんが、すべてのアプリプールIDを照会するためにgoogleが私をここに導きました。これは私のバージョンです

Import-Module WebAdministration;Get-ChildItem -Path IIS:\AppPools\ | 
Select-Object name, state, managedRuntimeVersion, managedPipelineMode, @{e={$_.processModel.username};l="username"}, <#@{e={$_.processModel.password};l="password"}, #> @{e={$_.processModel.identityType};l="identityType"} |
format-table -AutoSize
12
fiat