我試圖根據Powershell中的SQL Server作業的lastrunoutcome屬性更改寫入主機輸出的顏色......如...如果一項工作取得成功,lastrunoutcome的輸出是綠色的「成功」......如果失敗,則「失敗」爲紅色。我的腳本正在努力獲得理想的工作狀態......我只是不知道如何改變顏色。更改寫入主機輸出顏色基於foreach如果elseif如果在PowerShell中的結果
這裏是我到目前爲止:
# Check for failed SQL jobs on multiple servers
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | out-null
foreach ($svr in get-content "C:\serverlist2.txt")
{
$a = get-date
$BegDate = (Get-Date $a.AddDays(-1) -f d) + " 12:00:00 AM"
$BegDateTrans = [system.datetime]$BegDate
write-host $svr
$srv=New-Object "Microsoft.SqlServer.Management.Smo.Server" "$svr"
$srv.jobserver.jobs | where-object {$_.lastrundate -ge $BegDateTrans -and $_.Name -notlike "????????-????-????-????-????????????"} | format-table name,lastrunoutcome,lastrundate -autosize
foreach ($_.lastrunoutcome in $srv.jobserver.jobs)
{
if ($_.lastrunoutcome = 0)
{
-forgroundcolor red
}
else
{}
}
}
這似乎是我已經得到最接近的...但它給我的「」 LastRunOutcome「是一個只讀屬性的錯誤」
任何幫助將不勝感激!
謝謝!
情緒
如果我將代碼從「=」更改爲「-eq」,我只是得到錯誤「術語'-forgroundcolor'不被識別爲cmdlet,函數,腳本文件的名稱,或可操作的程序。「 – Emo 2010-04-26 18:30:26
我知道-eq是一個比較性的說法,這在這裏不起作用 – Emo 2010-04-26 18:37:28
呃...哎呀......我不知道..還有我最後兩條評論大聲笑! – Emo 2010-04-26 20:44:14