Oto prosta metoda, której używałem w systemach Windows 7 do Windows 10. Po prostu używam polecenia „IF EXIST”, aby sprawdzić folder Windows \ System32 \ WDI \ LogFiles. Folder WDI istnieje w każdej instalacji systemu Windows począwszy od co najmniej 7 i wymaga uprawnień administratora, aby uzyskać do niego dostęp. Folder WDI zawsze zawiera folder LogFiles. Zatem uruchomienie „IF EXIST” w folderze WDI \ LogFiles zwróci wartość „prawda”, jeśli jest uruchomiona jako administrator, i „fałsz”, jeśli nie zostanie uruchomiona jako administrator. Można tego użyć w pliku wsadowym, aby sprawdzić poziom uprawnień i przejść do dowolnych poleceń na podstawie tego wyniku.
Oto krótki fragment przykładowego kodu:
IF EXIST %SYSTEMROOT%\SYSTEM32\WDI\LOGFILES GOTO GOTADMIN
(Commands for running with normal privileges)
:GOTADMIN
(Commands for running with admin privileges)
Należy pamiętać, że ta metoda zakłada, że domyślne uprawnienia zabezpieczeń nie zostały zmodyfikowane w folderze WDI (co jest mało prawdopodobne w większości sytuacji, ale należy zapoznać się z zastrzeżeniem nr 2 poniżej). Nawet w takim przypadku wystarczy zmodyfikować kod, aby sprawdzić, czy nie ma innego wspólnego pliku / folderu, który wymaga dostępu administratora (System32 \ config \ SAM może być dobrym alternatywnym kandydatem) lub możesz nawet utworzyć własny specjalnie do tego celu cel, powód.
Istnieją jednak dwa zastrzeżenia dotyczące tej metody:
Wyłączenie UAC prawdopodobnie przełamie ten prosty fakt, że i tak wszystko zostanie uruchomione jako administrator.
Próba otwarcia folderu WDI w Eksploratorze Windows, a następnie kliknięcie przycisku „Kontynuuj” po wyświetleniu monitu spowoduje dodanie stałych praw dostępu do tego konta użytkownika, łamiąc w ten sposób moją metodę. W takim przypadku można to naprawić, usuwając konto użytkownika z uprawnień zabezpieczeń folderu WDI. Jeśli z jakiegoś powodu użytkownik MUSI mieć dostęp do folderu WDI za pomocą Eksploratora Windows, musiałbyś zmodyfikować kod, aby sprawdzić inny folder (jak wspomniano powyżej, utworzenie własnego specjalnie w tym celu może być dobrym wyborem) .
Tak więc, co prawda, moja metoda nie jest idealna, ponieważ można ją zepsuć, ale jest to stosunkowo szybka metoda, która jest łatwa do wdrożenia, jest równie kompatybilna ze wszystkimi wersjami Windows 7, 8 i 10 i pod warunkiem, że będę pamiętać o wspomnianych zastrzeżeniach był dla mnie w 100% skuteczny.
echo > somefile
wejścia do katalogu, który wymagałby uprawnień administratora. dałoby to plik jako efekt uboczny, ale możesz sprawdzić, czy nie ma kolizji i utworzyć unikalną nazwę pliku jako obejście.