็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿ–ฅ️ WSUS ๅฎขๆˆถ็ซฏๅผทๅˆถๅ ฑๅˆฐๅ…จ็ญ–็•ฅ(ๆธ… GUID、COM、PsExec)

    ๐Ÿ–ฅ️ WSUS ๅฎขๆˆถ็ซฏๅผทๅˆถๅ ฑๅˆฐๅ…จ็ญ–็•ฅ(ๆธ… GUID、COM、PsExec)

    ๅœจ WSUS ็’ฐๅขƒไธญ,ๆœ€ๅธธ่ฆ‹็š„ๅ•้กŒไน‹ไธ€ๅฐฑๆ˜ฏ「ๅฎขๆˆถ็ซฏไธๅ ฑๅˆฐ、ไธๅŒๆญฅ、ไธๆœƒๅ‡บ็พๅœจ WSUS ไธปๆŽงๅฐ」。 ๆœฌ็ฏ‡ๆไพ›ไธ€ๅฅ—ไผๆฅญ็ดš、ๅฎŒๆ•ดๅฏ่ฝๅœฐ็š„ๅผทๅˆถๅ ฑๅˆฐ็ญ–็•ฅ,ๆถต่“‹:

    • ๐Ÿ”ง ๆธ…้™ค WSUS Client GUID(้‡ๅปบ่ญ˜ๅˆฅ็ขผ)
    • ๐Ÿ”ง ้‡็ฝฎ SoftwareDistribution ๅŠๆŽˆๆฌŠ
    • ๐Ÿ“ก ๅผทๅˆถๆชขๆŸฅๆ›ดๆ–ฐ่ˆ‡ๅ ฑๅˆฐ(wuauclt / usoclient / PowerShell)
    • ๐Ÿงฉ COM API ๅผทๅˆถๅ ฑๅˆฐ(SYSTEM Level)
    • ๐Ÿ› ️ PsExec SYSTEM ๅฑค็ดš COM ๅ ฑๅˆฐ(ๆœ€ๅผทๆ–นๅผ)
    • ๐Ÿ” ่‡ชๅ‹•ๅŒ–่…ณๆœฌไธ€ๆฌกๅฎŒๆˆ(ๅทฒๅฏ็›ดๆŽฅ่ฝๅœฐ)

    ้€™ไบ›ๆ–นๆณ•็š†ๅทฒๅœจไผๆฅญๅคง้‡ Win10 / Win11 ็’ฐๅขƒๅฏฆๆธฌ,ๅฏๆœ‰ๆ•ˆ่™•็†ๅ ฑไธๅˆฐ、GUID ้‡่ค‡、็ด€้Œ„ๆๆฏ€็ญ‰ๅ•้กŒ。


    ๐Ÿ“Œ ็ฌฌไธ€็ซ :็ขบ่ช WSUS ๅฎขๆˆถ็ซฏ็‹€ๆ…‹

    1.1 ๆŸฅ็œ‹ๅฎขๆˆถ็ซฏ็›ฎๅ‰่จปๅ†Š็‹€ๆ…‹

    Get-WindowsUpdateLog
    Get-Item "HKLM:\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate"
    

    1.2 ๅธธ่ฆ‹ๅคฑๆ•ˆๅพตๅ…†

    • WSUS ไธปๆŽงๅฐ็œ‹ไธๅˆฐ่ฉฒๆฉŸๅ™จ
    • ๅ ฑๅˆฐๆ—ฅๆœŸๅœ็•™ๆ•ธๅคฉ็”š่‡ณๆ•ธ้€ฑ
    • GUID ้‡่ค‡(ๅคšๅฐๅŒไธ€ GUID)
    • SoftwareDistribution ๆๆฏ€

    ๐Ÿ“Œ ็ฌฌไบŒ็ซ :ๆธ…้™ค WSUS GUID(ๅฎŒๆ•ด้‡็ฝฎๆณ•)

    ๆญคๆ–นๆณ•ๆœƒ่ฎ“ Windows ้‡ๆ–ฐ็”ข็”Ÿ WSUS Client ID,ๆ˜ฏๆœ€ๅธธ็”จ็š„ไฟฎๅพฉๆต็จ‹。

    2.1 PowerShell ไธ€้ตๆธ…้™ค GUID

    # ๅœๆญข Windows Update ๆœๅ‹™
    net stop wuauserv
    net stop bits
    
    # ็งป้™ค WSUS ๅˆคๅˆฅ็ขผ
    Remove-Item "HKLM:\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate" -Recurse -Force
    
    # ้‡ๅปบ SoftwareDistribution
    Remove-Item "C:\Windows\SoftwareDistribution" -Recurse -Force
    
    # ้‡ๆ–ฐๅ•Ÿๅ‹•ๆœๅ‹™
    net start wuauserv
    net start bits
    
    # ้‡ๆ–ฐ็”ข็”Ÿ GUID
    wuauclt /resetauthorization /detectnow
    

    ้‡็ฝฎๅพŒ,็ณป็ตฑๆœƒ้‡ๆ–ฐ่จปๅ†Š WSUS ไธฆๅปบ็ซ‹ๆ–ฐ็š„ ClientID。


    ๐Ÿ“Œ ็ฌฌไธ‰็ซ :ๅผทๅˆถๆชขๆŸฅๆ›ดๆ–ฐ่ˆ‡ๅ ฑๅˆฐ(ๅฎ˜ๆ–นๅทฅๅ…ท)

    3.1 Windows 10 / 11(USO Client)

    usoclient startscan
    usoclient startdownload
    usoclient startinstall
    usoclient resumeupdate
    

    3.2 ่ˆŠ็‰ˆ Windows(WUAUCLT)

    wuauclt /detectnow
    wuauclt /reportnow
    

    ๆณจๆ„:ๅœจ Win10/Win11 ไธŠ,wuauclt ้ƒจๅˆ†ๅƒๆ•ธๅทฒ่ขซๆจ™็คบ deprecated,ไฝ† /reportnow ไปๅฏๅผทๅˆถๅ›žๅ ฑ WSUS


    ๐Ÿ“Œ ็ฌฌๅ››็ซ :ไฝฟ็”จ COM API ๅผทๅˆถๅ ฑๅˆฐ(WSUS ๆœ€ๆ ธๅฟƒๆ–นๅผ)

    ่‹ฅๆƒณ็œŸๆญฃๅผทๅˆถ Windows ็ซ‹ๅณ่ˆ‡ WSUS ๅ ฑๅˆฐ(ไธๅ—ๆŽ’็จ‹่ˆ‡ๅปถ้ฒ้™ๅˆถ),ๅฎ˜ๆ–นๅ”ฏไธ€ๆ–นๆณ•ๅฐฑๆ˜ฏ COM API:

    $updateSession = New-Object -ComObject Microsoft.Update.Session
    $updateSearcher = $updateSession.CreateUpdateSearcher()
    $searchResult = $updateSearcher.Search("IsInstalled=0")
    

    ้€™ๆœƒ็ซ‹ๅณ่งธ็™ผ Windows Update ่ˆ‡ WSUS ๅŒๆญฅ。

    4.1 ๅฎŒๆ•ด COM API ๅผทๅˆถๅ ฑๅˆฐ่…ณๆœฌ

    $Session = New-Object -ComObject "Microsoft.Update.Session"
    $Searcher = $Session.CreateUpdateSearcher()
    $Result = $Searcher.Search("IsInstalled=0 and Type='Software'")
    Write-Host "Updates Found: " $Result.Updates.Count
    

    ๆญคๆ–นๆณ•ๆฏ” USO/WAUCLT ๆ›ดๅฏ้ 。


    ๐Ÿ“Œ ็ฌฌไบ”็ซ :PsExec SYSTEM ๅฑค็ดš COM ๅ ฑๅˆฐ(ๆœ€ๅผท็ญ–็•ฅ)

    ๆœ‰ไบ›ๆฉŸๅ™จๅฐฑ็ฎ—็”จ PowerShell ไนŸ็„กๆณ•ๅผทๅˆถๅ ฑๅˆฐ,ๅŽŸๅ› ๆ˜ฏ:

    WSUS ๅ ฑๅˆฐ่กŒ็‚บๅฟ…้ ˆๅœจ SYSTEM ๆฌŠ้™ไธ‹ๆ‰่ƒฝๅฎŒๅ…จ็”Ÿๆ•ˆ。

    ๅ› ๆญค่ฆไฝฟ็”จ PsExec ไปฅ SYSTEM ่บซไปฝๅŸท่กŒ COM API:

    5.1 ไฝฟ็”จ PsExec SYSTEM ๅ ฑๅˆฐ

    psexec -sid powershell.exe
    

    5.2 ๅœจ SYSTEM ่ฃกๅŸท่กŒ COM ๅ ฑๅˆฐ

    $Session = New-Object -ComObject "Microsoft.Update.Session"
    $Searcher = $Session.CreateUpdateSearcher()
    $Searcher.Search("IsInstalled=0")
    

    ้€™ๆ˜ฏๆœ€ๅผทๅˆถ、ๆœ€ไฟ้šช、ๆœ€้ซ˜ๆˆๅŠŸ็އ็š„ WSUS ๅ ฑๅˆฐๆ–นๆณ•。


    ๐Ÿ“Œ ็ฌฌๅ…ญ็ซ :ไผๆฅญ็ดš「ไธ€้ตไฟฎๅพฉ」ๆ•ดๅˆ่…ณๆœฌ(ๆŽจ่–ฆ)

    ไปฅไธ‹่…ณๆœฌๆ•ดๅˆไบ†ไฝ ้œ€่ฆ็š„ๆ‰€ๆœ‰ๅŠŸ่ƒฝ: ๆธ…้™ค GUID → ้‡ๅปบ่ณ‡ๆ–™ๅคพ → ๆ™‚้–“ๅŒๆญฅ → ๅผทๅˆถๅ ฑๅˆฐ → SYSTEM COM ๅ ฑๅˆฐ。

    6.1 wsus_fix.ps1 — ไธ€้ตๅฎŒๆ•ดไฟฎๅพฉ

    # 1. ๆ™‚้–“ๅŒๆญฅ
    w32tm /resync /force
    
    # 2. ๅœๆญขๆœๅ‹™
    net stop wuauserv
    net stop bits
    
    # 3. ๆธ… GUID + ้‡ๅปบๆ›ดๆ–ฐ่ณ‡ๆ–™ๅคพ
    Remove-Item "HKLM:\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate" -Recurse -Force
    Remove-Item "C:\Windows\SoftwareDistribution" -Recurse -Force
    
    # 4. ๅ•Ÿๅ‹•ๆœๅ‹™
    net start wuauserv
    net start bits
    
    # 5. ๅผทๅˆถๅตๆธฌ
    wuauclt /resetauthorization
    wuauclt /detectnow
    
    # 6. USO ๅผทๅˆถๅตๆธฌ
    usoclient startscan
    
    # 7. COM API(User Mode)
    $Session = New-Object -ComObject "Microsoft.Update.Session"
    $Searcher = $Session.CreateUpdateSearcher()
    $Searcher.Search("IsInstalled=0") | Out-Null
    
    Write-Host "ๅˆๆญฅไฟฎๅพฉๅฎŒๆˆ,ๅฆ‚้œ€ๆœ€้ซ˜ๆˆๅŠŸ็އ่ซ‹ๅŸท่กŒ SYSTEM COM ๅ ฑๅˆฐ"
    
    ---

    6.2 SYSTEM ๆœ€้ซ˜ๆˆๅŠŸ็އๆจกๅผ(้œ€ PsExec)

    ๅฆๅญ˜็‚บ wsus_system_report.ps1

    $Session = New-Object -ComObject "Microsoft.Update.Session"
    $Searcher = $Session.CreateUpdateSearcher()
    $Searcher.Search("IsInstalled=0")
    Write-Host "SYSTEM ๅฑค็ดš WSUS ๅผทๅˆถๅ ฑๅˆฐๅฎŒๆˆ"
    

    ๅŸท่กŒๆ–นๅผ:

    psexec -sid powershell.exe -file wsus_system_report.ps1
    
    ---

    ๐Ÿ“Œ ็ฌฌไธƒ็ซ :้ ็ซฏๅคšๅฐ้›ป่…ฆๆ‰นๆฌกไฟฎๅพฉ(PsExec)

    ้‡ๅฐไผๆฅญ็’ฐๅขƒ(ๅคง้‡ PC),ๅฏๆ‰นๆฌกๅŸท่กŒ:

    psexec @hosts.txt -s powershell.exe -file wsus_fix.ps1
    

    hosts.txt ๆ ผๅผ:

    PC001
    PC002
    PC003
    

    ๐Ÿ“Œ ็ฌฌๅ…ซ็ซ :ๆœ€ไฝณๅฏฆๅ‹™ๅปบ่ญฐ(ไผๆฅญ็ดš)

    • ๐Ÿ•’ ๆฏๆœˆๅฎšๆœŸๅŸท่กŒๆธ…็† SoftwareDistribution
    • ๐Ÿงฑ ็ตฑไธ€ SCCM/WSUS GPO ่จญๅฎš,้ฟๅ… GUID ้‡่ค‡
    • ๐Ÿ” ไพ้œ€ๆฑ‚้–‹ๅ•Ÿ Telemetry,ๆๅ‡ WSUS ๅ›žๅ ฑๆˆๅŠŸ็އ
    • ๐Ÿ“ก ๅฎšๆœŸๅŸท่กŒ SYSTEM COM ๅ ฑๅˆฐ(ๆœ€ๅฎŒๆ•ด)
    • ๐Ÿ“‚ ไฟ็•™ๅฎŒๆ•ดๆ›ดๆ–ฐไบ‹ไปถ่จ˜้Œ„(UpdateLog)

    ๐Ÿ“Œ ็ต่ชž

    WSUS ๅ ฑไธๅˆฐ้€šๅธธไธๆ˜ฏๅ–ฎไธ€ๅŽŸๅ› ,่€Œๆ˜ฏ GUID、ๆŽˆๆฌŠ、ๆ›ดๆ–ฐ่ณ‡ๆ–™ๅคพ、SYSTEM ๆฌŠ้™、COM API ๅ…จ้ƒจ็ถๅœจไธ€่ตท。 ๆœฌ็ฏ‡ๆไพ›็š„ๆ•ดๅˆ็ญ–็•ฅๅทฒ้ฉ—่ญ‰ๅคšๅนด,ๆ˜ฏ็›ฎๅ‰ไผๆฅญ็’ฐๅขƒๆˆๅŠŸ็އๆœ€้ซ˜、ๆœ€็ฉฉๅฎš、ๆœ€ๅฎŒๆ•ด็š„「WSUS ๅฎขๆˆถ็ซฏๅผทๅˆถไฟฎๅพฉๆ–นๆกˆ」。

    ไธ‹ไธ€็ฏ‡ๅฐ‡ๅปถไผธไป‹็ดน: 《WSUS + PowerShell GUI ๅทฅๅ…ท:่‡ชๅ‹•ไฟฎๅพฉ、ๆ‰นๆฌก่จบๆ–ท่ˆ‡็ณป็ตฑๆจกๅผ COM ๅ ฑๅˆฐ(้€ฒ้šŽ็‰ˆ)》


    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš