none
是否可運用powershell產生出wsus有哪一些client 沒有安裝patch? RRS feed

  • 一般討論

  • 因為想要更有效率的得到wsus client 哪幾台沒有update patch完整

    是否可以運用powershell去產生這一份report,可明顯輸出沒有完整update patch的client

    因為本公司很重視每一台client & server update patch

    謝謝!

    • 已變更類型 Molly Mao 2015年9月23日 上午 08:44
    2015年9月9日 上午 05:22

所有回覆

  • 有, 已經有WSUS Powershell script的HTML report還提供電郵寄送功能, 你可以在這裡找到

    https://gallery.technet.microsoft.com/scriptcenter/WSUS-HTML-Report-655a8f28

    另外, WSUS裡亦有狀況報告


    邊幫助, 邊鍛鍊

    2015年9月9日 上午 08:12
  • 你好!

    但是這一個powershell似乎沒有辦法直接export到D槽,有辦法直接export到D槽成為excel嗎?

    我剛有test了一下,設定好我的wsus server 相關資訊 run完沒有什麼反應,也沒有跑出任何報表

    該怎辦

    2015年9月9日 上午 09:59
  • 你好, 如果對報告有特定要求, 建議你自行建立

    有位Powershell MVP對WSUS Powershell scripting有幾篇深入的探討文章

    http://blogs.technet.com/b/heyscriptingguy/archive/2012/01/21/introduction-to-poshwsus-a-free-powershell-module-to-manage-wsus.aspx

    特別是這篇應該對你非常有幫助

    http://blogs.technet.com/b/heyscriptingguy/archive/2012/01/19/use-powershell-to-find-missing-updates-on-wsus-client-computers.aspx

    只要熟習後, 以Powershell cmdlet - export-csv把結果輸出成csv應該是很輕易的


    邊幫助, 邊鍛鍊

    2015年9月9日 上午 11:04
  • hello 您好,

    其實我昨天是先看完那篇blog才來這發問的,因為那一篇寫的我還是沒辦法弄出來,想說是否有更好的方法

    我可以分享我目前寫的code :

    目前run出來的結果我還無法真正的改完整,我需要裡面結果的三個欄

    位:InstalledCount,NotInstalledCount,ComputerTarget 這三個資訊,但是run完卻無法成功的只帶出這三個我

    要的資訊在excel,再來就是我在powershell執行視窗看到的是ComputerTarger正確的名字,也就是我們公司的機

    器,但是run出來的excelComputerTarger卻是雜湊的亂碼,我想應該是GUID,類似這種"f4fea273-6d1d-416e-b1da-

    e58864968831",有辦法直接show出我要的PCname or Server name嗎? 謝謝各位

    $computerscope = New-Object Microsoft.UpdateServices.Administration.ComputerTargetScope
    $updatescope = New-Object Microsoft.UpdateServices.Administration.UpdateScope
    $wsus.GetSummariesPerComputerTarget($updatescope,$computerscope)|Export-CSV d:\temp\needpatch.csv -Encoding UTF8| Format-Table InstalledCount,NotInstalledCount,ComputerTarget -Wrap -Auto |ForEach {
    New-Object PSObject -Property -SearchBase "ou=tp,DC=ap,DC=vishayint,DC=com"|Select-Object InstalledCount,NotInstalledCount,ComputerTarget @{
    ComputerTarget = ($wsus.GetComputerTarget([guid]$_.ComputerTargetId)).FullDomainName
    NeededCount = ($_.DownloadedCount + $_.NotInstalledCount)
    DownloadedCount = $_.DownloadedCount
    NotApplicableCount = $_.NotApplicableCount
    NotInstalledCount = $_.NotInstalledCount
    InstalledCount = $_.InstalledCount
    FailedCount = $_.FailedCount
    percent = (($_.NotApplicableCount - $_.InstalledCount) / $_.NotApplicableCount * 100)
    }
    }




    2015年9月10日 上午 12:23
  • 你好, 如果你已經得出GUID, 你可以用Get-ADComputer cmdlet, 以ObjectGUID為輸入找出DNSHostName


    邊幫助, 邊鍛鍊

    2015年9月10日 上午 03:40
  • 你好~Justin,

    請問該怎樣改,是否可請您幫助,可否寫給我參考一下

    我有上Get-ADComputer -Filter {ComputerTarget -Like "PCTP*"} ,但是還是無法成功篩選

    謝謝!


    2015年9月10日 上午 06:07
  • 類似這樣


    邊幫助, 邊鍛鍊

    2015年9月10日 上午 06:30
  • 我的code裡面有含ComputerTarget = ($wsus.GetComputerTarget([guid]$_.ComputerTargetId)).FullDomainName

    但是我要怎樣用Get-ADComputer -filter *| where {$_objectGUID -eq $GUID} | Select DNSHostName去自動辨識我run的所有PC上面的GUDI自動解析成DNSname

    請看我的貼圖,run的結果是有跑出DNS name , 但是excel跑出來的資料還是GUID

    2015年9月10日 上午 06:41
  • 試試以 | Out-String 把結果轉換為String再Pipeline 到Excel

    ComputerTarget = ($wsus.GetComputerTarget([guid]$_.ComputerTargetId)).FullDomainName | Out-String


    邊幫助, 邊鍛鍊


    2015年9月10日 上午 08:54
  • 請問我Out-String後面需要加什麼嗎?因為run出來還是跑GUID的雜湊碼
    2015年9月11日 上午 02:29
  • 還有人熟悉powershell的大師可以解答嗎?

    2015年9月15日 上午 05:11