top of page

PowerShell | Windows Update Web Scrape Current Month

This will go online and get this months (Cummulative) KB numbers for all supported Windows Operating Systes. Make sure to run it after patch tuesdaoy.  :)  this will coinside with another script posted that checks for this months KB installtion on all systems.

CLS

$MyDate=Get-Date -Format "yyyy-MM"

Write-Host "KB List for Month `t `t $MyDate"

Write-Host  `n

 

#------------------------------- Windows 10 22H2 -----------------------------------

 

$Date=Get-Date -Format "MM"

 

(Invoke-WebRequest -Uri https://www.catalog.update.microsoft.com/Search.aspx?q=Cumulative%20Update%20for%20Windows%2010%20Version%2022H2%20).Content | Out-File C:\temp\10C-$X.txt

 

#Export Data Out to File

$Lines= Get-Content C:\temp\10C-$X.txt  

 

$Line1=@()

 

#Loop Through Each File to Get KB Output

Foreach($Line in $Lines){

 

    If($Line -like "*(KB*"){        

        

        if(($Line -like "*Cumulative Update for Windows 10 Version 22H2 for x64-based Systems*") -and ($Line -notlike "*Dynamic*") ){

                  

           $Line1+=$Line.Trim("2023-$Date Cumulative Update for Windows 10 Version 22H2 for x64-based Systems").Replace("(","").Replace(")","")          

           

        }

    }      

}

Write-Host "Windows 10 22H2 `t $Line1"

 

"2023-$Date `t Windows 10 22H2 `t $Line1" | Out-File C:\temp\Patch-KB.txt

 

Write-Host  `n

 

 

 

#------------------------------- 2016 Server -----------------------------------

$Date=Get-Date -Format "MM"

 

(Invoke-WebRequest -Uri https://www.catalog.update.microsoft.com/Search.aspx?q=2023-$Date Cumulative Update for Windows Server 2016 for x64-based Systems).Content | Out-File C:\temp\2016C-$X.txt

 

#Export Data Out to File

$Lines= Get-Content C:\temp\2016C-$X.txt  

 

#Loop Through Each File to Get KB Output

Foreach($Line in $Lines){

    If($Line -like "*(KB*"){       

        $text=$Line       

        $2016=$text.Trim(" 2023-$Date Cumulative Update for Windows Server 2016 for x64-based Systems").Replace("(","").Replace(")","")

        Write-Host "Windows Server 2016 `t $2016"              

        "2023-$Date `t Windows Server 2016 `t $2016" | Out-File C:\temp\Patch-KB.txt -Append

    }

}

Write-Host  `n

#------------------------------- 2019 Server -----------------------------------

 

(Invoke-WebRequest -Uri https://www.catalog.update.microsoft.com/Search.aspx?q=2023-$Date Cumulative Update for Windows Server 2019 for x64-based Systems).Content | Out-File C:\temp\2019C-$X.txt

 

#Export Data Out to File

$Lines= Get-Content C:\temp\2019C-$X.txt  

 

#Loop Through Each File to Get KB Output

Foreach($Line in $Lines){

    If($Line -like "*(KB*"){

        $text=$Line

       

        $2019=$text.Trim("2023-$Date Cumulative Update for Windows Server 2019 for x64-based Systems").Replace("(","").Replace(")","")

        Write-Host "Windows Server 2019 `t $2019"

        "2023-$Date `t Windows Server 2019 `t $2019" | Out-File C:\temp\Patch-KB.txt -Append

    }

}

Write-Host  `n

 

#------------------------------- 2019 Server -----------------------------------                                                                         

 

(Invoke-WebRequest -Uri https://www.catalog.update.microsoft.com/Search.aspx?q=2023-$Date Cumulative Update for Microsoft server operating system version 21H2 for x64-based Systems).Content | Out-File C:\temp\2022C-$X.txt

#Export Data Out to File

$Lines= Get-Content C:\temp\2022C-$X.txt  

 

#Loop Through Each File to Get KB Output

Foreach($Line in $Lines){

    If($Line -like "*(KB*"){

        $text=$Line        

        $2022=$text.Trim("2023-$Date Cumulative Update for Microsoft server operating system version 21H2 for x64-based Systems").Replace("(","").Replace(")","")

        Write-Host "Windows Server 2022 `t $2022"

        "2023-$Date `t Windows Server 2022 `t $2022" | Out-File C:\temp\Patch-KB.txt -Append

    }

}

Write-Host  `n

 

Invoke-Item C:\temp\Patch-KB.txt

bottom of page