Here is a quick script for PowerShell to output installed programs to a txt file.

New-PSDrive -Name "Drive Name here" -PSProvider FileSystem -Root "Your SMB Location"
cd "Drive Name here":\
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize > back.txt
cd C:\
Remove-PSDrive "Drive Name here"

I'll explain this script line by line for clarity:

New-PSDrive -Name "Drive Name here" -PSProvider FileSystem -Root "Your SMB Location"

This line creates a PSDrive which is like mapped drive but is temporary and lasts as long as the PS Session or until the command we will call later

cd "Drive Name here":\

Brings us to our created drive

Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -AutoSize > back.txt

This long chained line fetches a registry key containing all of the programs on the machine and pipes it to a file called back.txt. Found this snippet here

cd C:\

we cd back to C to prevent the PSDrive from being in use and preventing removal

Remove-PSDrive "Drive Name here"

Removes reference to the temporary drive unlinking it, which is best practice to prevent someone accessing your temporary drives if you leave or share a machine.