Очень простой способ использования IWshShortcut (работает также в .net 2):
WshRuntimeLibrary.IWshShortcut MyShortcut = (IWshRuntimeLibrary.IWshShortcut)WshShell.CreateShortcut(fullPathLnk);
string iconLoc = MyShortcut.IconLocation; // <- example: "c:\icon.ico,0"
Я использую, чтобы проверить, существует ли iconLoc, исправьте, если нет, вы можете использовать, чтобы найти и прочитать файл значков и т. Д.и т.д.