Ahoj,
K původnímu problému. Podle toho co píšeš musíš používat Windows Vista a pozdější.
V podstatě ti tu již řekli všichni v čem je problém i naznačili řešení. Protože se diskuse ale poněkud zamotala a já nečetl vše a mohl jsem tedy něco přehlédnout, shnu podstatu.
Program Files je systémová složka a práva k ní a jejím podsložkám jsou nějak standardně definována (tak aby nesprávce nemohl měnit obsah, přidávat vlastní složky a soubory). Pokud je v systému aktivní UAC a k takovým složkám se pokusí přistoupit nesprávce bude vyzván ke změně oprávnění.
Teď se bavme čistě o aplikacích. Pokud je v systému v aktivní UAC ani administrátor nesppouští aplikace s nejvyšším stupněm oprávnění (high integrity level). Tato úroveň oprávnění je potřebná pro spuštění instalaátorů (které se identifikují jako instalátory, nebo byla zjištěn pokus o přístup do Program Files nebo jiné systémové složky, nebo jméno souboru obsahuje slovo "setup",...).
Jak tu již někdo poznamenal. Pokud použiješ CMD shell/konzoli (spuštěnou s administrátorskými právy) budou veškeré příkazy automaticky provedeny s nejvyšším oprávněním. Nastavení správného kontextu nebude vždy možné, ale pokud jde jen o zápis do "chráněné" složky...
Další možností, pokud není problém s aplikaci (viz princip popsaný výše), ale jde jen o problém se složkou Program Files je uložit potřebnou apilkaci či data jinam, nebo jejich oprávnění vyjmout z dědění a nastavit jim vlastní oprávnění. Klidně takhle můžete provovzovat i historické hry (pokud nevytáří stále nové soubory a složky), a nebo můžete provést přesměrování na úrovni disku (MKLink /?) a skutečná data umístit mimo Program Files.