Jump to content

NT 5.x Windows Update URLs Dump, inc. Custom Support Updates


abbodi1406

Recommended Posts

- Windows NT 5.x family windowsupdate.com links for available languages, including all (any?) Custom Support Updates

- The updates links are grouped for each build, slightly sorted, and ordered lexicographically per update number or file name as possible

- Superseded (replaced) updates are not filtered or excluded

- The dump is available as csv files containing updates name and url, or plain text files containing updates url

- It's recommended to use CSVFileView to check the csv files
https://www.nirsoft.net/utils/csv_file_view.html

- You can filter or extract updates for certain language using findstr (Vista or 7)
e.g.
 

findstr /i \-enu NT_5.2.3790-x64-Custom.csv > NT_5.2.3790-x64-Custom-enu.csv


however, few update have different language identifier or none, so it's best to review the whole file first

- NT_5.1.2600-x86-SP2-Custom and NT_5.1.2600-x86-SP2-Custom-IE are ment for the EOS Windows XP SP2 x86 only

- NT5-ia64 is for Itanium-based Server 2003 / Windows XP

- .NET Framework packs and updates for NT 5.1/5.2 are in a separate list files, likewise Windows Media Player and some eXtra updates

# P.S. Maybe it's best not to post the links explicitly in the forum replies or text sites (pastebin, txtuploader..), and share them in the txt/csv files

# Download

https://gitlab.com/stdout12/adns/uploads/9ca06a12dd08c06edd889e65afa637fa/NT5_WU_URLs_csv.7z

https://gitlab.com/stdout12/adns/uploads/33fcfd0b0f6c1a0cb74472cb8407800d/NT5_WU_URLs_txt.7z

Link to comment
Share on other sites


Quick observation:

- Some of Window 2000 custom updates were included in the discontinued Security Release ISO Images

- Windows Server 2003 custom updates are not blocked for Windows XP x64 (i didn't check all)
even the known blocked update KB2926765 has a custom variant which is not blocked

- IE for Server 2003 x86 got only two custom updates, but for Server 2003 x64 it got many (latest is 2019-09 KB4516046)

- Windows XP SP3 x86 last custom updates were for 2019-02 (not taking public KB4500331 into account)
there are none for 2019-03/2019-04 (they didn't create them or i could not get them)

- Windows XP SP3 x86 custom updates eventually are the same as the equivalent embedded updates, with few exceptions:

  • custom KB3092627 is not available for embedded (replaced by KB4493790 anyway)
  • custom KB4025409 is equivalent to the first embedded KB4025409 (2017/06), which contain WLDAP32.dll 5.1.2600.7294 and adamdsa.dll/adambsrv_xp.dll
  • custom KB4035382 is equivalent to the second embedded KB4025409 (2017/07), which contain only WLDAP32.dll 5.1.2600.7313

* some embedded updates have no custom equivalent:

  • few IE updates, including the latest for IE6/7/8
  • DST and Timezones updates
  • RDP KB3020338
  • IME KB2991963
  • v2 of KB4089453 and KB4487085
  • TLS 1.2 updates KB4019276, KB4459091, KB4467770
  • 2019-03/2019-04 updates

* embedded-custom updates are ment for XP Embedded (XPe), but they work the same as other embedded updates:

  • IE7 updates, up to the latest KB4480965 (2019-01)
  • JScript/VBScript 5.7 updates, up to the latest KB3169659
Link to comment
Share on other sites

Now Server 2003 and XP x64 can be fully updated up to 2019-08, nice. Thank you very much for this.

 

On 4/11/2021 at 2:34 AM, abbodi1406 said:

- You can filter or extract updates for certain language using findstr (Vista or 7)
e.g.
 


findstr /i \-enu NT_5.2.3790-x64-Custom.csv > NT_5.2.3790-x64-Custom-enu.csv

 

No need, findstr is included in XP and Server 2003, and it works as expected.

Link to comment
Share on other sites

In case anyone wants to download all the updates in the CSV file...

I created a Python download script to bulk download those updates - tested on Python 3.9.2 but should also work for older Python 3 versions after installing the "requests" package ('pip install requests' shall suffice):

One important note: You need to create the directories corresponding to each CSV file in "csv_files" using the following format (e.g. "NT_5.1.2600-x86-All_DL" for "NT_5.1.2600-x86-All.csv") before running the script.

import csv
import requests

# Add/replace the filenames in csv_files below with the CSV files you want to download
csv_files = ['NT_5.1.2600-x86-All.csv', 'NT_5.1.2600-x86-IE-All.csv', 'NT_5.2.3790-x64-All.csv', 'NT_5.2.3790-x64-IE.csv', 'NT_5.2.3790-x86-All.csv', 'NT_5.2.3790-x86-IE.csv']

for csvfile in csv_files:
    print(f'Starting file download for {csvfile}.')
    with open(csvfile) as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')
        line_count = 0
        for row in csv_reader:
            if line_count == 0:
                print(f'Column names are {", ".join(row)}')
                line_count += 1
            else:
                print(f'\tDownloading {row[0]}...')
                url = row[1]
                r = requests.get(url)
                with open('./' + csvfile[:-4] + '_DL/' + row[0], 'wb') as f:
                    f.write(r.content)
                print(f'\tCompleted with status code {r.status_code}.')
                line_count += 1
        print(f'Processed {line_count} lines.')
print(f'Download Completed.')

Hope someone finds this useful. Personally, it took me ~13 hours to download all the updates for the 6 CSV files I put in my script above. Also, I found duplicates in 'NT_5.2.3790-x64-All.csv': kb2957503 turns up twice. Just as FYI since #lines in the CSV will not match with the number of files in the corresponding folder.

Link to comment
Share on other sites

What about those updates? Windows 2000 ended support in July 2010, and there were updates for May 2016. As for Windows XP, there were updates for August 2019.

They were never in the Windows Update Catalog.

I don't want to be conspiranoid, but are they updates from big companies that MS secretly gave you paying for an expensive service like Windows 7 ESUs? Or could it even be from the pentagon? since I read that in 2018 they were still working 9x in the facilities but without internet for security reasons.

Edited by WinFX
Link to comment
Share on other sites

Quote

- Windows XP SP3 x86 last custom updates were for 2019-02 (not taking public KB4500331 into account)
there are none for 2019-03/2019-04 (they didn't create them or i could not get them)

- Windows XP SP3 x86 custom updates eventually are the same as the equivalent embedded updates, with few exceptions:

I don't know about Windows 2000, but it does say that the XP SP3 updates which go up to 2019 are pretty much the same as the POSReady 2009 updates that many of us here were using with a registry tweak on the system to fool Windows Update that we had POSReady 2009 installed.
I would be surprised if paid-for extended support updates would be so readily publicly downloadable.
:)

Link to comment
Share on other sites

17 hours ago, WinFX said:

What about those updates? Windows 2000 ended support in July 2010, and there were updates for May 2016. As for Windows XP, there were updates for August 2019.

They were never in the Windows Update Catalog.

I don't want to be conspiranoid, but are they updates from big companies that MS secretly gave you paying for an expensive service like Windows 7 ESUs? Or could it even be from the pentagon? since I read that in 2018 they were still working 9x in the facilities but without internet for security reasons.

Hence the description "Custom Support Updates", AKA internally for paid companies

it had been known for years that XP SP3 got those custom unpublished updates, but now we know that W2k and W2k3 got them too
custom updates for W2k started in 2014-06, at the same time when the custom support program started for XP SP3

the links are public, the updates are not blocked for installation, what would be suspicious?

Link to comment
Share on other sites

If I were managing a company that had paid a fortune to Microsoft for extended support for an operating system, I would not be at all amused to find that those updates were now freely available to download by anyone!
It can't be a simple as that, surely?
:dubbio:

Link to comment
Share on other sites

IDK really, but have reason to think that Microsoft has been under more pressure from the US Department of Homeland Security that is generally realized. To say “the US is vulnerable to cyberattack” is pretty much to say “Microsoft products are vulnerable to cyberattack.” Consider that M$ is now the world’s leading antivirus vendor, whereas they are no longer in the browser engine business at all. That would’ve been unthinkable 20 years ago. It’s well known here at MSFN that “post-EOL” patches are often freely available for years after novices have dutifully abandoned an M$ product, so why should we be surprised anymore?

Link to comment
Share on other sites

On 4/18/2021 at 12:17 AM, WinFX said:

As for Windows XP, there were updates for August 2019.

I have searched these lists until my eyes have crossed and the last update I can find for Windows XP is KB4501226-x86-embedded from June 2019 (aka 2019-06) which is for the DST changes in Windows for Morocco and the Palestinian Authority.

Am I not looking in the right folder or something?

I would love to be able to install any newer updates for Windows XP that were released after June 2019, such as KB4507704 which deals with the DST changes in Windows for Brazil and Morocco.  This update was released on July 15, 2019 for Windows Embedded POSReady 2009 et al but was never made publicly available for this variety of Windows XP. 

Link to comment
Share on other sites

  • 2 weeks later...
On 4/16/2021 at 7:34 AM, HHo2016 said:

In case anyone wants to download all the updates in the CSV file...

I created a Python download script to bulk download those updates - tested on Python 3.9.2 but should also work for older Python 3 versions after installing the "requests" package ('pip install requests' shall suffice): [...]

Thank you very much! However, the code did not work on my system using Python 3.4. It appears there are some syntax errors (at least when running it with 3.4) plus it tries to access the download subfolder without creating it first, which fails upon file write. I've adapted your code, fixing all the breaking stuff, adding the folder creation and a few more human-readable strings for what I believe are more common HTTP return codes. One new required Python module: "os".

It's not very efficient I guess, trying to create the subfolder on every iteration, but hey, I am no Python programmer at all. But this did work for me (Python 3.4 on some old CentOS 6.10 Linux):

import csv
import os
import requests

# Add/replace the filenames in csv_files below with the CSV files you want to download
csv_files = ['NT_5.1.2600-x86-All.csv', 'NT_5.1.2600-x86-IE-All.csv', 'NT_5.2.3790-x64-All.csv', 'NT_5.2.3790-x64-IE.csv', 'NT_5.2.3790-x86-All.csv', 'NT_5.2.3790-x86-IE.csv']

for csvfile in csv_files:
    print('Starting file download for' , csvfile)
    with open(csvfile) as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')  # Read comma-delimited CSV
        line_count = 0
        for row in csv_reader:  # Iterate over rows
            if line_count == 0:   # Output CSV header
                print('Column names are:' , ' '.join(row))
                line_count += 1
            else:
                # Create download folder, but do nothing if it exists already
                try:
                    os.mkdir('./' + csvfile[:-4] + '_DL/')
                    print('Subfolder' , csvfile[:-4] , '_DL/' , 'created')
                except FileExistsError:
                    pass
                print('\tDownloading' , row[0] , '...')
                url = row[1]
                r = requests.get(url)  # Get WU file
                with open('./' + csvfile[:-4] + '_DL/' + row[0], 'wb') as f:
                    f.write(r.content)  # Write WU file to disk
                # Let's define some human-redable HTTP status codes to output
                if r.status_code == 200:
                    status = ', OK'
                elif r.status_code == 403:
                    status = ', FORBIDDEN'
                elif r.status_code == 404:
                    status = ', NOT FOUND'
                elif r.status_code == 500:
                    status = ', INTERNAL SERVER ERROR'
                elif r.status_code == 502:
                    status = ', BAD GATEWAY'
                elif r.status_code == 504:
                    status = ', GATEWAY TIMEOUT'
                else:
                    status = ''
                print('\tCompleted with status code' , r.status_code , status)
                # Write error log, should an error have occurred
                if r.status_code != 200:
                    with open('./error.log', 'wb') as errLog:
                        errLog.write(('FAIL: ' + row[0] + ', ERROR CODE: ' + str(r.status_code) + status + '\nFAILED URL: ' + row[1] + '\n\n').encode())
                line_count += 1
        print('Processed' , line_count , 'lines.')
print('Download Completed.')

I haven't introduced any additional, Linux/POSIX-specific stuff, so this should work on Windows just as well (or so I hope).

Edit: Further extended the code. It now writes an error log to file error.log including file name and URL should any errors occur during the downloading process. That way you won't miss any download errors.

Edited by GrandAdmiralThrawn
Link to comment
Share on other sites

On 4/28/2021 at 11:47 PM, GrandAdmiralThrawn said:

Thank you very much! However, the code did not work on my system using Python 3.4. It appears there are some syntax errors (at least when running it with 3.4) plus it tries to access the download subfolder without creating it first, which fails upon file write. I've adapted your code, fixing all the breaking stuff, adding the folder creation and a few more human-readable strings for what I believe are more common HTTP return codes. One new required Python module: "os".

It's not very efficient I guess, trying to create the subfolder on every iteration, but hey, I am no Python programmer at all. But this did work for me (Python 3.4 on some old CentOS 6.10 Linux):


import csv
import os
import requests

# Add/replace the filenames in csv_files below with the CSV files you want to download
csv_files = ['NT_5.1.2600-x86-All.csv', 'NT_5.1.2600-x86-IE-All.csv', 'NT_5.2.3790-x64-All.csv', 'NT_5.2.3790-x64-IE.csv', 'NT_5.2.3790-x86-All.csv', 'NT_5.2.3790-x86-IE.csv']

for csvfile in csv_files:
    print('Starting file download for' , csvfile)
    with open(csvfile) as csv_file:
        csv_reader = csv.reader(csv_file, delimiter=',')  # Read comma-delimited CSV
        line_count = 0
        for row in csv_reader:  # Iterate over rows
            if line_count == 0:   # Output CSV header
                print('Column names are:' , ' '.join(row))
                line_count += 1
            else:
                # Create download folder, but do nothing if it exists already
                try:
                    os.mkdir('./' + csvfile[:-4] + '_DL/')
                    print('Subfolder' , csvfile[:-4] , '_DL/' , 'created')
                except FileExistsError:
                    pass
                print('\tDownloading' , row[0] , '...')
                url = row[1]
                r = requests.get(url)  # Get WU file
                with open('./' + csvfile[:-4] + '_DL/' + row[0], 'wb') as f:
                    f.write(r.content)  # Write WU file to disk
                # Let's define some human-redable HTTP status codes to output
                if r.status_code == 200:
                    status = ', OK'
                elif r.status_code == 403:
                    status = ', FORBIDDEN'
                elif r.status_code == 404:
                    status = ', NOT FOUND'
                elif r.status_code == 500:
                    status = ', INTERNAL SERVER ERROR'
                elif r.status_code == 502:
                    status = ', BAD GATEWAY'
                elif r.status_code == 504:
                    status = ', GATEWAY TIMEOUT'
                else:
                    status = ''
                print('\tCompleted with status code' , r.status_code , status)
                # Write error log, should an error have occurred
                if r.status_code != 200:
                    with open('./error.log', 'wb') as errLog:
                        errLog.write(('FAIL: ' + row[0] + ', ERROR CODE: ' + str(r.status_code) + status + '\nFAILED URL: ' + row[1] + '\n\n').encode())
                line_count += 1
        print('Processed' , line_count , 'lines.')
print('Download Completed.')

I haven't introduced any additional, Linux/POSIX-specific stuff, so this should work on Windows just as well (or so I hope).

Edit: Further extended the code. It now writes an error log to file error.log including file name and URL should any errors occur during the downloading process. That way you won't miss any download errors.

Yeah I just threw together my original code quickly and I only tested it with Python 3.9 (which I now realize doesn't install on Windows 7 or older...) For my original code, you needed to create the download folders before running the script (I didn't have time then to figure out how to create a new folder via Python, so I did it via a .bat file instead that created the folders before invoking my Python code). Example: "NT_5.1.2600-x86-All_DL" folder needed to be created for "NT_5.1.2600-x86-All.csv" before running the script.

Anyway, thanks for extending it!

Link to comment
Share on other sites

On 4/20/2021 at 12:06 PM, XPHomeSP3 said:

I would love to be able to install any newer updates for Windows XP that were released after June 2019, such as KB4507704 which deals with the DST changes in Windows for Brazil and Morocco.  This update was released on July 15, 2019 for Windows Embedded POSReady 2009 et al but was never made publicly available for this variety of Windows XP. 

unfortunately still MS never really released a KB4507704 DST patch for XP Posready thru WU (they may have tried to produce one at one point but ultimately decided not to post it up)

I have to remind you about the comment you made here almost a year ago.
the info written in MS support article 4507704 remains inaccurate

On 4/17/2021 at 8:17 PM, WinFX said:

As for Windows XP, there were updates for August 2019.

for XP x64 (64bit) yes, up to Aug. 2019
but for XP x86 (32bit) no - up to June 2019 (with KB4501226 for xp posready)

 

Edited by erpdude8
Link to comment
Share on other sites

7 hours ago, erpdude8 said:

unfortunately still MS never really released a KB4507704 DST patch for XP Posready thru WU (they may have tried to produce one at one point but ultimately decided not to post it up

Correct.  MS did not release KB4507704 through WU but after doing some digging I was able to confirm they did in fact end up producing it for those XP/POSReady 2009 users who were/are currently paying for MS Premium Support.  Any further information beyond this would have involved opening an expensive custom support ticket which I politely declined to do. 

7 hours ago, erpdude8 said:

I have to remind you about the comment you made here almost a year ago.

Thank you but that's really not necessary.  I'm fully aware of and completely remember my comment.  It may be helpful for anyone currently reading this thread who may be unfamiliar with it though. 

7 hours ago, erpdude8 said:

the info written in MS support article 4507704 remains inaccurate

Yes, this is sadly true and shame on MS for not caring enough about their customers enough to correct it and avoid any further potential confusion regarding it's availability.  

7 hours ago, erpdude8 said:

for XP x64 (64bit) yes, up to Aug. 2019
but for XP x86 (32bit) no - up to June 2019 (with KB4501226 for xp posready)

Thank you for the clarification on this, @erpdude8 , as the distinction between XP x86 and XP x64 wasn't explicitly made in @WinFX's comment.  I'm sure you can appreciate then why I may have thought the URL for the KB4507704 update might have been included in amongst the lists provided by @abbodi1406.  

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...