На практике это не всегда работает, поэтому вам действительно нужно сохранить исходные установочные файлы.
Чтобы дать очень тривиальный пример, предположим, что вы устанавливаете программу, для которой требуется какой-либо сторонний компонент (например, Microsoft Visual C++ Runtime). Затем вы устанавливаете другую программу, которая также требует этот компонент. Когда запускается вторая установка, он обнаруживает, что этот компонент уже существует на компьютере, он пропускает эти файлы и, следовательно, ваша процедура захвата не поймет, что это необходимо.
Таким образом, если вы переформатируете свой компьютер и попытаетесь использовать вторую программу, скопировав все файлы в журнале записи, она не будет работать, потому что не знала, что для нее также требуется этот компонент.