簡體   English   中英

如何使 -AutoRefresh 命令在 powershell 通用儀表板腳本中工作

[英]How to make the -AutoRefresh command work in a powershell universal dashboard script

我設法創建了一個腳本/儀表板來監視文件中的關鍵字日志,然后創建它自己的日志。 我說托管是因為我對編碼技能知之甚少。 我目前遇到的問題是,雖然腳本有效,但它並沒有主動監視文件。 我希望它在不重新加載儀表板的情況下無限期地持續查找此關鍵字。

編碼:

Get-UDDashboard | Stop-UDDashboard
Start-UDDashboard -Port 1000 -Dashboard (
    New-UDDashboard -Title “SERVER STATUS DASHBOARD” -Content {
        New-UDHeading -Text "ACTIVE SERVICES" -Size 5   
        New-UDLayout   -Columns 6 -Content {  
            New-UDCard -Title 'Server Status' -Content {
   
                $SEL = Select-String -Path 'C:\Users\Server_log.txt' -Pattern "Server went down"

                if ($SEL -ne $null)
                {
                    Write-Host 'Contains String' -ForegroundColor Green
                    New-UDParagraph -Text 'Server is DOWN'-Color red

                } 

                else
                {
                    Write-Host 'Not Contains String' -ForegroundColor Red
                    New-UDParagraph -Text 'Server is UP'-Color Green
                }  
            } -AutoRefresh -RefreshInterval 5
        } 
    } 
 )

在互聯網上搜索后,我添加了一個“-AutoRefresh RefreshInterval 5”無濟於事。 我收到的錯誤如下:

***New-UDDashboard : Exception calling "Invoke" with "0" argument(s): "A parameter cannot be found that matches parameter name 'AutoRefresh'."
At C:\Users\Server_Status2.ps1:3 char:5
+     New-UDDashboard -Title “SERVER STATUS DASHBOARD” -Content ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SyntaxError: (UniversalDashboard.Models.Dashboard:Dashboard) [New-UDDashboard], CmdletInvocationException
    + FullyQualifiedErrorId : UniversalDashboard.Cmdlets.NewDashboardCommand***

最初我認為該錯誤表明名為“AutoRefresh”的 cmdlet 不在我的 powershell 環境中。 所以我嘗試了一個腳本,其中包含我知道有效的命令,它確實在我的環境中有效。 所以我知道我的環境確實支持“自動刷新”。 我相信語法是正確的,所以我認為這只是留下不正確的代碼結構成為問題。

任何幫助,將不勝感激。 謝謝

根據您發布的代碼, -Autorefresh參數正在應用於New-UDCard cmdlet(如果我正確計算大括號)。 查看我發現的幫助頁面,此 cmdlet 不支持autorefresh參數。

該模塊中似乎支持自動刷新的唯一 cmdlet 是您似乎沒有調用的New-UDElement autorefresh

恐怕我對您用來進一步幫助您的這個模塊了解不夠(或根本不知道),但希望這有助於您的調試。

因此,在 zdan 提供了一些有用的提示並在網上進行了一些更深入的搜索之后,我能夠解決我的問題。 通過使用 New-UDRow 和 New-UDColumn,我能夠使 AutoRefresh RefreshInterval 參數與 new-UDCard cmdlet 一起使用,如下所示:

Get-UDDashboard | Stop-UDDashboard
Start-UDDashboard -Port 1000 -Dashboard (
    New-UDDashboard -Title “SERVER STATUS DASHBOARD” -Content {
        New-UDHeading -Text "ACTIVE SERVICES" -Size 5   
        New-UDLayout   -Columns 6 -Content {  
            
            New-UDRow -Endpoint {

            New-UDColumn -Content {
            
            New-UDCard -Title 'Server Status' -Content {
   
                $SEL = Select-String -Path 'C:\Users\Server_log.txt' -Pattern "Server went down"

                if ($SEL -ne $null)
                {
                    Write-Host 'Contains String' -ForegroundColor Green
                    New-UDParagraph -Text 'Server is DOWN'-Color red

                } 

                else
                {
                    Write-Host 'Not Contains String' -ForegroundColor Red
                    New-UDParagraph -Text 'Server is UP'-Color Green
                }  
            } 
          } -AutoRefresh -RefreshInterval 5
        } 
       }
      }
 )

希望,如果其他人也想做同樣的事情,也許這也可以幫助他們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM