Skip to main content
  1. Posts/
  2. blog.dsinf.net/

Ostateczne ominięcie Program Compatibility Assistant w Windows 8.1

·312 words·2 mins
blog.dsinf.net program compatibility assistant windows windows 8.1
Daniel Skowroński
Author
Daniel Skowroński

W najnowszej wersji beta Windowsa - 8.1 i 2012 R2 Program Compatibility Assistant stał się jeszcze bardziej denerwujący, uniemożliwiając uruchomienie niezgodnych aplikacji. Ponadto nie da się go wyłączyć przez rejestr ani edytor zasad grupy.

Wszystko za sprawą przyjęcia nowego modelu obsługi zgodności ( http://msdn.microsoft.com/en-us/library/dn302074%28v=vs.85%29.aspx). Można na siłę zmieniać ustawienia w gpedit.msc - Computer configuration -> Administrative Templates -> Windows Components -> Application Compatibility - tam Turn off App Compatibility Engine i Turn off Program Compatibility Assistant w siódemce wystarczyło przestawić na Enabled. Ale programiści tej wersji zostawili opcję bez połączenia z jądrem. No cóż.

Po długim śledztwie w systemie znalazłem kilka usług, które są odpowiedzialne za zgodność aplikacji, ale ich dezaktywacja nic nie zmienia (a czasem unieruchamia system). W końcu jednak doszukałem się plików, które mają coś wspólnego tymi usługami -

c:\Windows\AppPatch\sysmain.sdb
c:\Windows\AppPatch\apppatch64\sysmain.sdb

Pliki te trzeba usunąć, przesunąć lub zmienić ich nazwy. Ponieważ Windows jakkolwiek jest zabezpieczony to należy zalogować się na konto SYSTEM - coś jak root na Linuksie, jednak na ten profil nie można się normalnie zalogować. Można natomiast wykorzystać sztuczki by uruchomić proces z jego uprawnieniami. Rzecz jasna my musimy mieć konto administratorskie. Po starem można wywołać

at 17:24 /interactive cmd.exe

gdzie 17:24 to godzina, kiedy chcemy odpalić zadanie (zazwyczaj następna minuta). Jeśli chcemy być zgodni z nowymi trendami i zdobyć praktyczne narzędzie Sysinternals to warto pobrać ze strony http://technet.microsoft.com/en-us/sysinternals/bb545027 PSexec i wywołać

psexec -s cmed.exe

Alternatywą do rozwiązań “systemowych” są wszelkie aplikacje nazwane runassystem. Teraz pozostaje przejąć uprawnienia do samych plików - nie zawsze tak po prostu można modyfikować plik będąc superużytkownikiem. Ja użyłem FAR Manager’a, który sam przejmuje uprawnienia kiedy trzeba, ale wystarczy icacls oraz takeown.

Przypomnę to, co oczywiste na moim blogu - to rozwiązanie jest dość niebezpieczne, ponadto wiersz poleceń tak wyglądający jest furtką do zagrożenia stabilności i integralności okienek

Microsoft Windows [Version 6.3.9431]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows> whoami
nt authority\system