Для Windows 7 на ум приходит только утилита Microangelo On Display (в Windows 10 не работает). Она умеет так делать путем редактирования кэша иконок (не shell32, а IconCache.db, который у пользователя в AppData хранится и генерируется динамически). Вот тут я для примера создал пустой exe-файл и ярлык для него, затем в опциях Microangelo On Display выбрал машинку вместо стандартной иконки:
Если же вручную прописать путь к конкретной иконке для .exe-файлов в соответствующей ветке реестра (HKEY_CLASSES_ROOT\exefile\DefaultIcon), то ВСЕ исполняемые файлы и ярлыки станут отображаться с такой иконкой. Даже те, которые до этого имели свою иконку. Так что через реестр не вариант, я так полагаю.