iT邦幫忙

0

如何透過PowerShell在WSUS上取得用戶最後一次安裝安全性更新日期

舜~ 2021-04-01 16:43:012120 瀏覽
  • 分享至 

  • xImage

如提

之前的提問(已解決)[WSUS,PowerShell,筆記]PowerShell查詢語法問題只能得知用戶去WSUS報到時間,

若我想要知道WSUS上全部用戶端最後一次安裝安全性更新並成功的更新日期、KD編號、微軟釋出KD的年月

想請教PowerShell要怎麼實現這個需求??

或者反過來,第一次安全性更新安裝失敗導致後續卡住的安裝時間、失敗KD編號、微軟釋出KD的年月

這樣應該比較容易實現?
或有沒有類似的範例可以參考?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
通通
iT邦新手 4 級 ‧ 2021-04-01 23:58:52

這不會很難我已經很久沒碰Winodws 但主流和常用的服務我都用過
原理和邏輯很簡單
但我記得現在wsusGUI管理做得算蠻完善了(除非有特殊需求就只能自己客製)

流程
powershell>mssql>再透過powershell呈現效果(html+css)

但你要先把wsus資料庫的表摸熟再來想邏輯怎麼查
https://ithelp.ithome.com.tw/upload/images/20210402/20122404mqU4KlKFBh.png
附上多年前客製化圖表

sql語法(年代久遠不太記得當時要查什麼了)

SELECT left(tbComputerTarget.FullDomainName,30) as [Machine Name]
           ,count(tbComputerTarget.FullDomainName) as [# of Missing patches]
           ,tbComputerTarget.LastSyncTime as [Last Sync Time]
FROM tbUpdateStatusPerComputer INNER JOIN tbComputerTarget ON tbUpdateStatusPerComputer.TargetID =          
            tbComputerTarget.TargetID
WHERE (NOT (tbUpdateStatusPerComputer.SummarizationState IN ('1', '4'))) AND
            tbUpdateStatusPerComputer.LocalUpdateID IN (SELECT LocalUpdateID FROM dbo.tbUpdate WHERE UpdateID IN        
            (SELECT UpdateID FROM PUBLIC_VIEWS.vUpdateApproval WHERE Action='Install'))
GROUP BY tbComputerTarget.FullDomainName, tbComputerTarget.LastSyncTime
ORDER BY COUNT(*) DESC
舜~ iT邦高手 1 級 ‧ 2021-04-05 10:54:14 檢舉

wsus資料庫...雖然沒碰過,不過開了另一個思路XD

納貝 iT邦新手 1 級 ‧ 2021-04-09 14:37:36 檢舉

powershell 語法找remote電腦的event log語法如下
前提你要是該remote電腦的admin權限

>Get-WmiObject win32-ntlogevent -computername 10.0.0.1 -filter "'找eventlog的關鍵字'"

我要發表回答

立即登入回答