2008-10-31 11 views
16

Napisałem plik msi, który oferuje wybór "dla użytkownika" lub "dla wszystkich" instalacji w fazie interfejsu użytkownika, a teraz okazuje się, że instalator nie działa w systemie Vista:Ustaw UAC jako opcjonalny w Instalatorze Windows na Vista

  • gdybym tylko ponowne użycie instalatora, który działa na XP, Vista wywoła UAC skłonić nawet do instalacji „per-user”, co sprawia, że ​​instalacja bezsensowną
  • jeśli mogę wyłączyć UAC w bit 3 PID_WORDCOUNT , Vista nie będzie już w ogóle wywoływać UAC, więc nawet jeśli użytkownik będzie miał uprawnienia do instalacji w rejestrze komputera (powiedzmy), podniesienie uprawnień nie nastąpi, więc instalacja nie powiedzie się.

A więc: w jaki sposób można zapobiec uruchamianiu UAC przez program instalacyjny, gdy nie jest on naprawdę potrzebny? Alternatywnie, w jaki sposób mogę programowo zażądać kontroli konta użytkownika, nawet jeśli ustawiony jest bit 3?

Odpowiedz

6

Niestety, Instalator Windows nie zapewnia sposób, aby utworzyć pojedynczy pakiet, który można zainstalować na maszynie i dla każdego użytkownika, ale zapyta tylko o ZAK w przypadku poszczególnych komputerów. Problem polega na tym, że bit, który może ukryć monit UAC, jest przechowywany w strumieniu SummaryInformation i nie można go modyfikować podczas wykonywania pakietu.

+0

Dziękujemy za potwierdzenie. Czy istnieje poważny powód do tego, czy możemy mieć nadzieję, że ta flaga stanie się własnością pewnego dnia? –

+1

Słyszałem, że MSI 5.0 coś robi to ten obszar. Ale potrzebujemy Win7 do tego.

3
+0

Proszę zrozumieć, że nie mówię o UAC pliku wykonywalnego - nie ma pliku setup.exe. Zamiast tego użytkownicy uruchamiają bezpośrednio plik MSI. –

+0

nowy numer referencyjny pod warunkiem ... – saschabeaumont

+0

To jest fantastyczny link do serii postów na blogu omawiających, w jaki sposób kontrola dostępu użytkownika (UAC) dotyczy technologii Instalatora Windows (.msi). Dzięki za link, @sascha! – dthrasher

1

Wyłączyłem UAC, ustawiając bit 3 PID_WORDCOUNT w moim pakiecie MSI. Potrafię zainstalować go dla "ALLUSERS" i "PER-USER", a także napisać dla HKLM w obu trybach na maszynach VISTA. Czy podczas instalacji wymagane jest wyskakujące okienko UAC dla uprzywilejowanego użytkownika?

+0

Wyłączenie tego kawałka nie działa dla mnie. Użytkownicy otrzymają błędy "odmowa uprawnień", mimo że są członkami grupy administratorów. Tylko sam administrator może pomyślnie zainstalować pakiet. –

Powiązane problemy