Вот простой метод, который я использовал в Windows 7 - Windows 10. По сути, я просто использую команду «IF EXIST», чтобы проверить папку Windows \ System32 \ WDI \ LogFiles. Папка WDI существует при каждой установке Windows не менее 7 лет, и для доступа к ней требуются права администратора. В папке WDI всегда есть папка LogFiles. Таким образом, запуск «IF EXIST» в папке WDI \ LogFiles вернет true, если запуск от имени администратора, и false, если не от имени администратора. Это можно использовать в командном файле для проверки уровня привилегий и перехода к любым командам, которые вы пожелаете, основываясь на этом результате.
Вот краткий пример кода:
IF EXIST %SYSTEMROOT%\SYSTEM32\WDI\LOGFILES GOTO GOTADMIN
(Commands for running with normal privileges)
:GOTADMIN
(Commands for running with admin privileges)
Имейте в виду, что этот метод предполагает, что разрешения безопасности по умолчанию не были изменены в папке WDI (что вряд ли произойдет в большинстве ситуаций, но, пожалуйста, см. Предостережение № 2 ниже). Даже в этом случае это просто вопрос изменения кода для проверки другого общего файла / папки, который требует административного доступа (System32 \ config \ SAM может быть хорошим альтернативным кандидатом), или вы можете даже создать свой собственный специально для этого цель.
Есть два предостережения относительно этого метода:
Отключение UAC, скорее всего, сломает его из-за простого факта, что все равно будет работать от имени администратора.
Попытка открыть папку WDI в проводнике Windows и затем нажать «Продолжить» при появлении запроса добавит права постоянного доступа для этой учетной записи пользователя, что нарушит мой метод. Если это происходит, это можно исправить, удалив учетную запись пользователя из разрешений безопасности папки WDI. Если по какой-либо причине пользователь ДОЛЖЕН иметь возможность доступа к папке WDI с помощью проводника Windows, то вам придется изменить код, чтобы проверить другую папку (как упоминалось выше, создание собственного специально для этой цели может быть хорошим выбором) .
Итак, по общему признанию, мой метод не идеален, поскольку его можно сломать, но это относительно быстрый метод, который прост в реализации, одинаково совместим со всеми версиями Windows 7, 8 и 10, и при условии, что я буду помнить о упомянутые предостережения были на 100% эффективными для меня.