Jak poprawnie sprawdzić, czy proces jest uruchomiony z uprawnieniami administratora?Jak sprawdzić, czy proces ma uprawnienia administracyjne
Sprawdziłem IsUserAnAdim
function in MSDN, ale nie jest to zalecane, ponieważ może być zmienione lub niedostępne w kolejnych wersjach systemu Windows. Zamiast tego zaleca się użycie funkcji CheckTokenMembership
.
Następnie przejrzałem alternatywny przykład w MSDN z opisu funkcji CheckTokenMembership
. Jednak w MSDN znajduje się komentarz Stefana Ozminskiego, który wspomina, że ten przykład nie działa poprawnie w systemie Windows Vista, jeśli wyłączono UAC.
Wreszcie próbowałem użyć kodu Stefana Ozminski jest z MSDN, ale stwierdza, że proces ma prawa administracyjne, nawet gdybym go uruchomić pod zwykłego użytkownika bez uprawnień administratora w systemie Windows 7.
Jeśli nie można wyświetlić dowolny kod tutaj przynajmniej można dostarczyć nam linki do odwołania Artykuły/komentarze/kodu? –
Pomoże to wielu z was zdefiniować dokładnie, co rozumiecie przez "prawa administracyjne". Masz na myśli, czy działa on jako użytkownik w grupie administratorów? Masz na myśli, czy ma pełne prawa UAC? –
Czy próbowałeś PrivilegeCheck API? – sarat