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
パスを組み合わせてアイテムを取得するだけです。これは動作します:
$item = Get-Item (Join-Path 'IIS:\AppPools\' 'Test') |
select -ExpandProperty processModel |
select -expand identityType
厳密には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