Udostępnij za pośrednictwem


Przechowywanie wersji systemu operacyjnego

Platformy, których dotyczy problem

Klienci — Windows 7
Servers — Windows Server 2008 R2

Wpływ funkcji

Dotkliwość — wysoka
Częstotliwość — Wysoka

Opis

Numer wersji wewnętrznej dla systemów Windows 7 i Windows Server 2008 R2 to 6.1. Funkcja GetVersion zwróci teraz ten numer wersji do aplikacji po wysłaniu zapytania. Jest to szczególnie ważne w przypadku ochrony przed wirusami, kopiami zapasowymi, aplikacjami narzędziowymi i ochroną kopii.

Manifestacja wpływu

Przejaw tej zmiany jest specyficzny dla aplikacji. Oznacza to, że każda aplikacja, która specjalnie sprawdza wersję systemu operacyjnego, otrzyma wyższy numer wersji, co może prowadzić do co najmniej jednej z następujących sytuacji:

  • Instalatory aplikacji mogą nie być w stanie zainstalować aplikacji, a uruchomienie aplikacji może być niemożliwe
  • Aplikacje mogą stać się niestabilne lub ulegać awarii
  • Aplikacje mogą generować komunikaty o błędach, ale nadal działają prawidłowo

Łagodzenia

Większość aplikacji będzie działać prawidłowo w systemach Windows 7 i Windows Server 2008 R2, ponieważ zgodność aplikacji w systemach Windows 7 i Windows Server 2008 R2 jest bardzo wysoka. Jednak systemy Windows 7 i Windows Server 2008 R2 zawierają widok zgodności dla instalatorów i aplikacji, które sprawdzają wersję systemu operacyjnego.

Aby włączyć widok zgodności, użytkownicy mogą kliknąć prawym przyciskiem myszy skrót lub plik wykonywalny, a następnie zastosować widok zgodności systemu Windows XP z dodatkiem SP2 lub Windows Vista na karcie Zgodność. W większości przypadków powinno to umożliwić aplikacji prawidłowe działanie bez konieczności wprowadzania jakichkolwiek zmian w aplikacji.

Specjaliści IT mogą również zastosować dowolne z odpowiednich poprawek zgodności VersionLie, korzystając z narzędzia Administrator zgodności, które instaluje z zestawem narzędzi zgodności aplikacji (ACT). Na przykład, jeśli aplikacja nie może działać, ponieważ sprawdza, ale nie znajduje informacji o wersji Windows XP® z dodatkiem Service Pack 2 (SP2), można zastosować WinXPSP2VersionLie, aby zwrócić do aplikacji odpowiednie informacje o numerze wersji, niezależnie od rzeczywistej wersji systemu operacyjnego uruchomionego na komputerze. Dostępne poprawki zgodności VersionLie to:

  • Win95VersionLie
  • Win98VersionLie
  • WinNT4SP5VersionLie
  • Win2000VersionLie
  • Win2000SP1VersionLie
  • Win2000SP2VersionLie
  • Win2000SP3VersionLie
  • WinXPVersionLie
  • WinXPSP1VersionLie
  • WinXPSP2VersionLie
  • VistaRTMVersionLie
  • VistaSP1VersionLie
  • VistaSP2VersionLie
  • Win2K3RTMVersionLie
  • Win2K3SP1VersionLie

Rozwiązanie

Ogólnie rzecz biorąc, aplikacje nie powinny wykonywać kontroli wersji systemu operacyjnego. Jeśli aplikacja potrzebuje określonej funkcji, najlepiej jest spróbować znaleźć tę funkcję i zakończyć się niepowodzeniem tylko wtedy, gdy brakuje potrzebnej funkcji. Co najmniej aplikacje powinny zawsze akceptować numery wersji większe lub równe najniższej obsługiwanej wersji systemu operacyjnego. Wyjątki powinny wystąpić tylko wtedy, gdy istnieje określone wymaganie prawne, biznesowe lub dotyczące składników systemowych.