Bí quyết là: PowerShell thiết lập cái gọi là "tệp định nghĩa xem" cho PowerShell biết cách định dạng đối tượng (ví dụ: đối tượng được định dạng dưới dạng danh sách hoặc bảng, cột nào được hiển thị, v.v.). Các tệp đó có thể được tìm thấy tại C:\Windows\System32\WindowsPowerShell\v1.0
và tất cả đều kết thúc bằng .format.ps1xml
.
Để trả lời câu hỏi ban đầu: Các tập tin C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration\iisprovider.format.ps1xml
chứa định nghĩa khung nhìn cho các loại AppPool
trong đó xác định một cột tính toán tìm kiếm như thế này:
<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>
này trả lời tại sao cột tự nó không phải là một thành viên của AppPool kiểu. Câu hỏi thứ hai có thể dễ dàng trả lời tại giải nén mã cần thiết từ "scriptlet" ở trên:
$applicationsInAppPoolCount = @(Get-WebConfigurationProperty `"/system.applicationHost/sites/site/application[@applicationPool=`'$appPool`'and @path!='/']"` "machine/webroot/apphost" -name path).Count
Nguồn
2013-12-23 21:27:12
câu trả lời của bạn không thêm bất cứ điều gì vào chủ đề này. Đây phải là một bình luận nhưng bạn thật đáng buồn không thể đăng chúng ... Cảm ơn bạn đã chỉ ra rằng bài đăng trên có vấn đề về định dạng. – Wndrr