![](/img/trans.png)
[英]How to make @'…'@ work in powershell.exe -command “”?
[英]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.