目前我有一個腳本可以做很多事情,一件事是它檢查一個 .txt 檔案以獲取所有當前服務器,然后在執行其余腳本之前執行 ping 以檢查連接性。我目前有這樣的設定,可以將它無法 ping 的服務器添加到陣列中,這樣它就不會減慢嘗試在故障服務器上嘗試的其余程序。在腳本的最后,我將其全部轉換為 HTML 檔案以便于查看。我想將連接失敗的服務器添加到 HTML 檔案的末尾,以顯示這些服務器失敗。
就像現在的腳本一樣,它只列印我放入這些服務器的陣列的 .Length 屬性。這是我設定陣列、向其中添加服務器、然后是 convertto-html 部分的代碼。
$servers = Get-Content "path\to\text.txt"
$failedConn = New-Object 'System.Collections.Generic.List[System.Object]'
foreach ($server in $servers)
{
$pingResult = Get-Ciminstance -ClassName win32_pingstatus -Filter "address='$server' and timeout=1000"
if ($pingResult.StatusCode -eq 0)
{
Write-Host "$server ping successful
}
else
{
Write-Host "$server ping Fail" -ForegroundColor Red
$failedConn.Add($server)
<# Also tried $failedConn = ($server) with the same error #>
}
}
<# Code for a forloop to do tasks where it adds an HTML variable called CombinedBody styling the tables whatnot #>
$CombinedBody = $failedConn | ConvertTo-Html | Out-File -Append C:\Path\To\html.html
結果只是將失敗的連接放在 HTML 檔案的最底部,但它會將其列印為每個服務器名稱的長度。如何讓它列印實際的服務器名稱?任何幫助是極大的贊賞!!
uj5u.com熱心網友回復:
Length是String物件中唯一可以ConvertTo-Html看到的屬性,因此這就是輸出。作為一種解決方法,您可以將服務器名稱包裝在另一個物件中,該物件只有一個包含名稱的屬性,然后它應該輸出實際名稱。像這樣:
$failedConn | foreach{[pscustomobject]@{"Failed Servers" = $_}} | ConvertTo-Html | Out-File -Append C:\Path\To\html.html
請注意,我已洗掉 $CombinedBody = ,因為Out-File不回傳任何輸出,因此不會做任何事情。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478637.html
上一篇:洗掉字串中的所有標簽標簽
