Oh please, we are on Windows. Open powershell, and don't cd around 'cause it starts in your userprofile where those files are lurking anyway... You can use -Force to make it recurse into hidden as well, and/or prepend c:\ if you want.
gci *.lnk -Recurse | where Length -gt 3000
Though I personally don't like pipes since the are slow (on every OS), so I prefer using the built-in methods of the object whenever possible. Though you must have a userprofile with a lot of files to see the difference in this example, or run it 1000 times and measure.
(gci *.lnk -Recurse).Where({$_.Length -gt 3000})
Reduce to 2000 or less if you see no output, cause 3000 bytes long .lnk files are really rare, 2000 appear more often.
using Unix find, which outputs a text-file list, which is then piped via exec through ls to get the blocks it uses... POSIX or not, it is so counter-elegant. Which shell (besides powershell) on Linux/Unix does offer actual object oriented handling? I am out of touch with Unix/Linux on that regard, but there are a ton of Linuxers here which could suggest something viable.