PowerShell Software Library - Scheduled Personal Software Library

Last update - 26-01-2024

New and improved 2024 version

On this page is something that I needed but couldn't find anywhere, so made it myself.
I have a lot of tools for work or personal usage, but every month some tool or application gets an update, security patch or feature.
To keep all this up to date in one place can be a pain and a lot of work.

I all ready use Ketarin to keep all my favorite tools up to date.
But this is still a manual ritual that keeps coming back every time i see an app or tool gets a new version.

So to keep all my apps and tools up to date and stored in the same place I created this script.
It downloads the tools in a folder of my choice, per application and per version.
So in time it becomes a software library with various versions. :-)

You can select the apps and tools you don't want by commenting them out of the script.
You can always download the script from here:   PSL-v2024.ps1

Also available on my GitHub: https://github.com/brenkster/PSL

To create a scheduled task that runs every week you can run this:
$SchedTaskCred = Get-Credential -Message "Enter the Domain credentials of the Scheduled Task Service Account"            
$SchedTaskCredUser = $SchedTaskCred.UserName            
$SchedTaskCredPwd = $SchedTaskCred.GetNetworkCredential().Password            
$Hostname = "Computername"            
$TaskName = "PSL"            
$Description = "Weekly PowerShell Software Library"            
             
$Action = New-ScheduledTaskAction -Execute 'Powershell.exe' `
-Argument '-NoProfile -WindowStyle Hidden -command "& "C:\Path\to\your\script\PSL\PSL.ps1""'            
             
$Trigger = New-ScheduledTaskTrigger -At 20:00 -Weekly -DaysOfWeek Sunday            
             
Register-ScheduledTask `
-User $SchedTaskCredUser `
-Password $SchedTaskCredPwd  `
-Action $Action `
-Trigger $Trigger `
-TaskName $TaskName `
-Description $Description `
-CimSession $Hostname

--Do not adjust the spaces and line separators or it won't work--

Only thing for you to do every now and then is download the latest version of the script HERE.
Or from below:

So here we go:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<#
.Synopsis
   PowerShell Software Library
.DESCRIPTION
   This script maintains a list of software downloads, it downloads the latest known versions at the time of the latest update to this script.
   All versions will be kept in the folder of the product, and so in time you create a library of versions of your favorite software.
.Run
   .\psl-v2024.ps1
.Created by
   Edwin van Brenk
.Version
   v.2024-01
.Date
   26-01-2024
#>

# Define a hashtable for software and their download links
$softwareList = @{
#	.NET
".NET\Framework 3" = "http://download.microsoft.com/download/1/6/7/167F0D79-9317-48AE-AEDB-17120579F8E2/NDP451-KB2858728-x86-x64-AllOS-ENU.exe";
".NET\Framework 3.5 Incl. sp1" = "http://download.microsoft.com/download/2/0/E/20E90413-712F-438C-988E-FDAA79A8AC3D/dotnetfx35.exe";
".NET\Framework 4" = "https://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe";
".NET\Framework 4.6" = "http://download.microsoft.com/download/C/3/A/C3A5200B-D33C-47E9-9D70-2F7C65DAAD94/NDP46-KB3045557-x86-x64-AllOS-ENU.exe";
".NET\Framework 4.61" = "https://download.microsoft.com/download/E/4/1/E4173890-A24A-4936-9FC9-AF930FE3FA40/NDP461-KB3102436-x86-x64-AllOS-ENU.exe";
".NET\Framework 4.62" = "https://download.visualstudio.microsoft.com/download/pr/8e396c75-4d0d-41d3-aea8-848babc2736a/80b431456d8866ebe053eb8b81a168b3/ndp462-kb3151800-x86-x64-allos-enu.exe";
".NET\Framework 4.7" = "https://download.visualstudio.microsoft.com/download/pr/2dfcc711-bb60-421a-a17b-76c63f8d1907/e5c0231bd5d51fffe65f8ed7516de46a/ndp47-kb3186497-x86-x64-allos-enu.exe";
".NET\Framework 4.71" = "https://download.visualstudio.microsoft.com/download/pr/4312fa21-59b0-4451-9482-a1376f7f3ba4/9947fce13c11105b48cba170494e787f/ndp471-kb4033342-x86-x64-allos-enu.exe";
".NET\Framework 4.72" = "https://download.visualstudio.microsoft.com/download/pr/1f5af042-d0e4-4002-9c59-9ba66bcf15f6/089f837de42708daacaae7c04b7494db/ndp472-kb4054530-x86-x64-allos-enu.exe";
".NET\Framework 4.8" = "https://download.visualstudio.microsoft.com/download/pr/7afca223-55d2-470a-8edc-6a1739ae3252/abd170b4b0ec15ad0222a809b761a036/ndp48-x86-x64-allos-enu.exe";
".NET\Framework 6.0" = "https://download.visualstudio.microsoft.com/download/pr/9b8baa92-04f4-4b1a-8ccd-aa6bf31592bc/3a25c73326e060e04c119264ba58d0d5/dotnet-sdk-6.0.418-win-x64.exe";
".NET\Framework 7.0" = "https://download.visualstudio.microsoft.com/download/pr/febc46ff-cc68-4bee-83d2-c34786b5ca68/524ef9b25d29dc90efdb0fba0f589779/dotnet-sdk-7.0.405-win-x64.exe";
".NET\Framework 8.0" = "https://download.visualstudio.microsoft.com/download/pr/cb56b18a-e2a6-4f24-be1d-fc4f023c9cc8/be3822e20b990cf180bb94ea8fbc42fe/dotnet-sdk-8.0.101-win-x64.exe";
".NET\NetFxRepairTool" = "https://download.microsoft.com/download/2/B/D/2BDE5459-2225-48B8-830C-AE19CAF038F1/NetFxRepairTool.exe";
".NET\.NET Core\windowsdesktop-runtime-3.1.2" = "https://download.visualstudio.microsoft.com/download/pr/3240250e-6fe0-4258-af69-85abef6c00de/e01ee0af6c65d894f4a02bdf6705ec7b/windowsdesktop-runtime-3.1.2-win-x64.exe";
#	1-9
".\7-Zip x64" = "https://www.7-zip.org/a/7z2301-x64.exe";
".\3UTools" = "hhttps://dl.3u.com/update/v300/dl/3uTools_v3.08.025_Setup_x86.exe";
#	A
".\Adobe\Reader" = "https://ardownload2.adobe.com/pub/adobe/reader/win/AcrobatDC/2300820470/AcroRdrDC2300820470_en_US.exe";
".\AnyBurn 64 bit" = "https://www.anyburn.com/anyburn_setup_x64.exe";
#	B
".\BurnAwareFree" = "https://download.betanews.com/download/1212419334-2/burnaware_free_17.3.exe";
#	C
".\Google Chrome" = "https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7BC6B8E5B5-796F-3303-857C-35EFD663B1A6%7D%26lang%3Den%26browser%3D5%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dtrue%26ap%3Dx64-stable-statsdef_0%26brand%3DGCGI/dl/chrome/install/googlechromestandaloneenterprise64.msi";
".\Certify the Web" = "https://certifytheweb.s3.amazonaws.com/downloads/archive/CertifyTheWebSetup_V6.0.13.exe";
#	E
".\Epic Privacy Browser" = "https://cdn.epicbrowser.com/winsetup/EpicSetup.exe";
#	F
".\FastStone\Viewer" = "https://www.faststonesoft.net/DN/FSViewerSetup78.exe";
".\FastStone\Viewer\Portable" = "https://www.faststonesoft.net/DN/FSViewer78.zip";
".\FastStone\Photo Resizer 4.3" = "https://www.faststonesoft.net/DN/FSResizerSetup44.exe";
".\FastStone\Photo Resizer 4.3\Portable" = "https://www.faststonesoft.net/DN/FSResizer44.zip";
".\Firefox" = "https://download-installer.cdn.mozilla.net/pub/firefox/releases/122.0/win64/en-US/Firefox%20Setup%20122.0.exe";
#	H
".\HTTrack" = "https://download.httrack.com/httrack_x64-3.49.2.exe";
".\HTTrack Portable" = "https://download.httrack.com/httrack_x64-noinst-3.49.2.zip";
#	I
".\IrfanView" = "https://www.fosshub.com/IrfanView.html?dwl=iview466_x64_setup.exe";
".\IrfanView Portable" = "https://www.irfanview.info/files/iview466_x64.zip";
".\ioBit Driver Booster" = "https://cdn.iobit.com/dl/driver_booster_setup.exe";
".\IISCrypto" = "https://www.nartac.com/Downloads/IISCrypto/IISCrypto.exe";
".\IISCryptoCLI" = "https://www.nartac.com/Downloads/IISCrypto/IISCryptoCli.exe";
#	J
".\Java" = "https://sdlc-esd.oracle.com/ESD6/JSCDL/jdk/8u401-b10/4d245f941845490c91360409ecffb3b4/jre-8u401-windows-x64.exe?GroupName=JSC&FilePath=/ESD6/JSCDL/jdk/8u401-b10/4d245f941845490c91360409ecffb3b4/jre-8u401-windows-x64.exe&BHost=javadl.sun.com&File=jre-8u401-windows-x64.exe&AuthParam=1706200242_b1785412be363d4a26c91c76d59970db&ext=.exe";
#	K
".\KeePass" = "https://netix.dl.sourceforge.net/project/keepass/KeePass%202.x/2.55/KeePass-2.55-Setup.exe";
".\KeePass Portable" = "https://netcologne.dl.sourceforge.net/project/keepass/KeePass%202.x/2.55/KeePass-2.55.zip";
".\Ketarin" = "https://ketarin.org/downloads/Ketarin/Ketarin-1.8.11.zip";
#	L

#	M
".\Microsoft Online Services Sign-in Assistant for IT Professionals" = "https://download.microsoft.com/download/7/1/E/71EF1D05-A42C-4A1F-8162-96494B5E615C/msoidcli_64bit.msi";
".\McAfee Avert Stinger" = "http://downloadcenter.mcafee.com/products/mcafee-avert/stinger/stinger64.exe";
".\MRemoteNG" = "https://github-releases.githubusercontent.com/460848/6278a380-5cff-11e9-82bd-bd9776fdd7cc?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20211202%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20211202T155458Z&X-Amz-Expires=300&X-Amz-Signature=0bf8ffaf811611f52e7d62ae05ee04a680b730cdc86689f30855b9920dea38d8&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=460848&response-content-disposition=attachment%3B%20filename%3DmRemoteNG-Installer-1.76.20.24615.msi&response-content-type=application%2Foctet-stream";
".\MRemoteNG\Portable" = "https://github-releases.githubusercontent.com/460848/542a8780-5cff-11e9-899c-784bab35a625?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20211202%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20211202T155407Z&X-Amz-Expires=300&X-Amz-Signature=72cbe1c8310c6b78a00986fc8723f45c5f28a19e0a710b871337c98e16bf2f10&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=460848&response-content-disposition=attachment%3B%20filename%3DmRemoteNG-Portable-1.76.20.24669.zip&response-content-type=application%2Foctet-stream";
".\MediaCreationTool-Windows10" = "https://download.microsoft.com/download/b/0/5/b053c6bc-fc07-4785-a66a-63c5aeb715a9/MediaCreationTool21H2.exe";
".\MediaCreationTool-Windows11" = "https://software-download.microsoft.com/download/pr/888969d5-f34g-4e03-ac9d-1f9786c69161/MediaCreationToolW11.exe";
# Exchange 2013
".\Microsoft Exchange 2013\CU23 EN X64" = "https://download.microsoft.com/download/7/F/D/7FDCC96C-26C0-4D49-B5DB-5A8B36935903/Exchange2013-x64-cu23.exe";
# Exchange 2016
".\Microsoft Exchange 2016\CU22 EN X64 ISO" = "https://download.microsoft.com/download/f/0/e/f0e65686-3761-4c9d-b8b2-9fb71a207b8d/ExchangeServer2016-x64-CU22.ISO";
".\Microsoft Exchange 2016\CU23 EN X64 ISO" = "https://download.microsoft.com/download/8/d/2/8d2d01b4-5bbb-4726-87da-0e331bc2b76f/ExchangeServer2016-x64-CU23.ISO";
# Exchange 2019
".\Microsoft Exchange 2019\CU12 EN X64 ISO" = "https://download.microsoft.com/download/b/c/7/bc766694-8398-4258-8e1e-ce4ddb9b3f7d/ExchangeServer2019-x64-CU12.ISO";
".\Microsoft Exchange 2019\CU13 EN X64 ISO" = "https://download.microsoft.com/download/7/5/f/75f4d77e-002c-419c-a03a-948e8eb019f2/ExchangeServer2019-x64-CU13.ISO";
# Microsoft Visual C++
".\Microsoft Visual C++\Redistributable 2013 x64" = "https://download.visualstudio.microsoft.com/download/pr/10912041/cee5d6bca2ddbcd039da727bf4acb48a/vcredist_x64.exe";
".\Microsoft Visual C++\Redistributable 2022 x64" = "https://aka.ms/vs/17/release/vc_redist.x64.exe";
#	N
".\NewsLeecher 7\Final" = "https://www.newsleecher.com/nl_setup.exe";
".\NewsLeecher 8\Beta 4" = "https://www.newsleecher.com/nl_setup_beta.exe";
".\Notepad++ X64" = "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.6.2/npp.8.6.2.Installer.x64.exe";
#	P
".\Paint.NET" = "https://github.com/paintdotnet/release/releases/download/v5.0.12/paint.net.5.0.12.install.anycpu.web.zip";
".\Putty" = "https://the.earth.li/~sgtatham/putty/latest/w64/putty-64bit-0.80-installer.msi";
".\PowerShell\7 Windows X64" = "https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/PowerShell-7.4.1-win-x64.msi";
#	Q
".\QuickPar 0.9.1.0" = "http://www.quickpar.org.uk/Download-0.9.1.0.htm";
#	R
".\RDCMan RemoteDesktopConnectionManager" = "https://download.sysinternals.com/files/RDCMan.zip";
".\Resource Hacker Portable" = "https://www.angusj.com/resourcehacker/resource_hacker.zip";
".\Rufus" = "https://github.com/pbatard/rufus/releases/download/v4.4/rufus-4.4.exe";
#	S
".\Samsung Magician\8.0.1.1000" = "https://download.semiconductor.samsung.com/resources/software-resources/Samsung_Magician_Installer_Official_8.0.1.1000.exe";
".\Spotnet" = "https://www.spotnet.tk/Spotnet.2.0.0.284.setup.exe.swf";
".\Sysinternals Suite 2024" = "https://download.sysinternals.com/files/SysinternalsSuite.zip";
".\ShowKeyPlus" = "https://github.com/Superfly-Inc/ShowKeyPlus/releases/download/ShowKeyPlus7060/ShowKeyPlus1.0.7060.zip";
".\SharePointOnlineManagementShell" = "https://download.microsoft.com/download/0/2/E/02E7E5BA-2190-44A8-B407-BC73CA0D6B87/SharePointOnlineManagementShell_24322-12000_en-us.msi";
".\Sonos" = "https://update-software.sonos.com/software/tJiCdMg7vB/Sonos_57.19-49220.exe";
#	T
".\TagScanner" = "https://www.xdlab.ru/files/tagscan-6.1.16_x64-setup.exe";
".\TagScanner Portable" = "https://www.xdlab.ru/files/tagscan-6.1.16_x64.zip";
".\Tor Browser" = "https://dist.torproject.org/torbrowser/13.0.9/tor-browser-windows-x86_64-portable-13.0.9.exe";
".\TextCrawler" = "https://www.digitalvolcano.co.uk/download/TextCrawler_Setup.exe";
#	V
".\Microsoft Research Virtual WiFi" = "https://download.microsoft.com/download/0/2/1/0219DB4F-7550-4233-B742-ADA241BCA06C/MSRMesh-VirtualWIFI.MSIhttps://download.microsoft.com/download/0/2/1/0219DB4F-7550-4233-B742-ADA241BCA06C/MSRMesh-VirtualWIFI.MSI";
".\VLC Media Player x64" = "https://videolan.mirror.liteserver.nl/vlc/3.0.20/win64/vlc-3.0.20-win64.exe";
#	W
".\WinRAR x64" = "https://www.win-rar.com/fileadmin/winrar-versions/winrar/winrar-x64-624.exe";
".\Wireshark Portable" = "https://2.na.dl.wireshark.org/win64/WiresharkPortable64_4.2.2.paf.exe";
".\Wireshark" = "https://2.na.dl.wireshark.org/win64/Wireshark-4.2.2-x64.exe";
".\WSUS Offline" = "https://download.wsusoffline.net/wsusoffline120.zip";
".\WindowsISODownloader" = "https://www.heidoc.net/php/Windows-ISO-Downloader.exe";
#	X
".\XnView" = "https://download.xnview.com/XnView-win-full.exe";


}

# Loop through the hashtable
foreach ($software in $softwareList.GetEnumerator()) {
    # Create directory
    New-Item -ItemType Directory -Force -Path "$env:OneDriveConsumer\PSL\$($software.Name)"

    # Define the path of the file to be downloaded
    $filePath = "$env:OneDriveConsumer\PSL\$($software.Name)\$(Split-Path -Path $software.Value -Leaf)"

    # Check if the file already exists
    if (!(Test-Path -Path $filePath)) {
        # Download file
        try {
            (new-object System.Net.WebClient).DownloadFile($software.Value, $filePath)
        } catch {
            Write-Error "Failed to download $($software.Value)"
        }
    } else {
        Write-Output "File $filePath already exists. Skipping download."
    }
}

No comments:

Post a Comment