0

我需要创建一个脚本来检查特定站点的 IIS 应用程序池及其子应用程序池是否已启动。(我有一个单独的脚本来启动“停止”的应用程序池,因为我只想检查它们是否已停止)我能够创建脚本但是当我修改它以更好地格式化输出时,我不断收到此错误,

At E:\iis\scripts\svc_pl_fm_app_pool_status.ps1:12 char:6
+         App Pool = $item.Name;
+            ~
Missing '=' operator after key in hash literal.
At E:\iis\scripts\svc_pl_fm_app_pool_status.ps1:7 char:29
+ foreach ($item in $results) {
+                             ~
Missing closing '}' in statement block.
    + CategoryInfo          : ParserError: (:) [], ParseException
    + FullyQualifiedErrorId : MissingEqualsInHashLiteral

我检查了这里和微软,但是当我第一次看到它时,我对这个错误更加困惑。我看到了这个Missing closing '}' in statement block.,所以我以为我实际上错过了一个,但我检查了一下,我没有。我不确定这是否是间距/缩进问题,但我对此错误消息知之甚少。下面是我的脚本。

$results = $item = $appPool = $status = $NULL
$status = "1"
import-module WebAdministration
$AppPoolList = @()
$results = Get-ChildItem IIS:\AppPools\* | Where-Object { ($_.Name -like "someAppPool*" -and $_.Name -like "someChildAppPool*" )}

foreach ($item in $results) {
    if ($item.State -ne "Started") {$status = "0"}

    $AppPoolList += [PSCustomObject]@{
        App Pool = $item.Name;
        Status = $item.State;
    }
}

$AppPoolList | Format-List
4

0 回答 0