Podstęp: PowerShell utworzył tak zwane "pliki definicji widoku", które informują PowerShell, jak formatować obiekty (np. Czy obiekt jest sformatowany jako lista lub tabela, które kolumny są wyświetlane itp.). Pliki te można znaleźć pod numerem C:\Windows\System32\WindowsPowerShell\v1.0
i kończą się na .format.ps1xml
.
Aby odpowiedzieć na oryginalne pytanie: Plik C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration\iisprovider.format.ps1xml
zawiera definicję widoku dla danego typu AppPool
który definiuje kolumny obliczona wygląda tak:
<TableColumnItem>
<ScriptBlock>
$pn = $_.Name
$sites = get-webconfigurationproperty "/system.applicationHost/sites/site/application[@applicationPool=`'$pn`'and @path='/']/parent::*" machine/webroot/apphost -name name
$apps = get-webconfigurationproperty "/system.applicationHost/sites/site/application[@applicationPool=`'$pn`'and @path!='/']" machine/webroot/apphost -name path
$arr = @()
if ($sites -ne $null) {$arr += $sites}
if ($apps -ne $null) {$arr += $apps}
if ($arr.Length -gt 0) {
$out = ""
foreach ($s in $arr) {$out += $s.Value + "`n"}
$out.Substring(0, $out.Length - 1)
}
</ScriptBlock>
</TableColumnItem>
Ten odpowiada, dlaczego sama kolumna nie jest członkiem AppPool rodzaj. Drugie pytanie może być łatwo odpowiedzieć teraz wydobycia niezbędnego kodu z „scriptlet” powyżej:
$applicationsInAppPoolCount = @(Get-WebConfigurationProperty `"/system.applicationHost/sites/site/application[@applicationPool=`'$appPool`'and @path!='/']"` "machine/webroot/apphost" -name path).Count
Twoja odpowiedź nie dodaje nic do tego wątku. To powinien być komentarz, ale niestety nie możesz ich jeszcze opublikować ... Dziękujemy za zwrócenie uwagi, że powyższy post ma problem z formatowaniem. – Wndrr