Pracuję nad aplikacją C#, która musi wykryć, czy użytkownik działa jako administrator z podwyższonym poziomem uprawnień. Wypróbowałem solution sugerowany przez Stevena.Nie można wykryć, czy użytkownik jest uruchomiony z podniesionymi uprawnieniami, gdy nie jest wyświetlane wyskakujące okno UAC:
Sprawdziłem rozwiązanie na 5 komputerach i działa dobrze na 4 z nich.
Istnieje jeden komputer, który nigdy nie wyświetla komunikatu powiadomienia UAC, mimo że ustawię Kontrolę konta użytkownika na Always notify me
.
Podczas sprawdzania kodu na tym komputerze, nawet jeśli wybiorę run as administrator
, to nie działa, a metoda IsProcessElevated
zwraca wartość false.
Czy coś jest nie tak z tą konkretną maszyną?
Czy istnieje sposób określenia, czy użytkownik jest podniesiony, czy nie, na tej platformie?
Sprawdziłbym, czy maszyny mają wszystkie najnowsze dodatki Service Pack itp., A następnie spróbuj ponownie. –
jest kilka alternatywnych rozwiązań do sprawdzenia UAC [tutaj] (http://stackoverflow.com/questions/95912/how-can-i-detect-if-my-process-is-running-uac-elevated-or-not-not). Czy można spróbować jednego z nich i sprawdzić, czy to działa? – Default
Wydaje mi się, że coś jest nie tak z tym komputerem, a nie z kodem. Powinieneś otrzymywać monity UAC, jeśli jawnie skonfigurujesz je, aby wyświetlały monit. Ty nie jesteś. To wskazuje na problem z samym systemem. –