Одиночный ярлык работает как UAC Admin и UAC Non-Admin

1

Я хотел бы создать отдельный командный файл - но он работает как с полными правами администратора, так и с токеном без прав администратора -

Либо работать с правами администратора, либо преобразовать в администратора, либо работать с правами администратора и инициировать процесс без прав администратора.

В частности мне нужно запустить команды

SUBST E: G:\SUBST\E 
NET USE Y: \\SVR\PATH 

как администратор, так и не администратор

Встроенный материал, такой как VBS, PS будет в порядке - я использую Windows 7

У меня есть следующий пакетный файл с RUNAS, и он не работает совсем путанно - я также попробовал запустить runas / user: domain \ usename / savecred "cmd / c subst" - я написал пакетные файлы, чтобы увидеть, что происходит

a1.bat

subst e: C:\Users\username\Documents\subst\e
subst
pause

Бита

runas /user:domain\usename /savecred "cmd /c C:\Users\username\Documents\subst\E\a1.bat"
  • Если я запускаю A1.bat в Admin CMD, ТОГДА в других средах Admin CMD получается диск
  • если я запускаю A.bat в административном CMD, то без административных CMD, кроме временных runas, каждый получает диск, включая оригинальный
  • Если я запускаю A1.bat в cmd без прав администратора, то другие CMD администратора получают диск
  • если я запускаю A.bat в не-Admin cmd, то ни одна среда cmd не получает диск - кроме временного runas

Я не пробовал с командами NET USE

Фон в том, что я обнаружил, что когда я бегу

NET USE Y: \\SVR\PATH 

без административных прав я не вижу диск Y: при последующем запуске команды с административными правами - на данный момент у меня на рабочем столе просто два ярлыка - по двойному щелчку мыши - один для администратора и один для нет - мне нужно сначала дважды щелкнуть администратор, поскольку в некоторых программах, которые являются только одним экземпляром, остаются резидентными и должны запускаться от имени администратора.

У меня есть простая система контекстных меню, которая запускает различные команды, когда я нажимаю сочетания клавиш. Чтобы сделать это портативным, я использую команду SUBST для сопоставления моего диска E: с определенным местоположением. Поскольку некоторые команды необходимо запускать с правами администратора, системе меню необходимо иметь права администратора и среды администратора, чтобы иметь одинаковые сопоставления дисков.

Росс
источник

Ответы:

1

Поскольку вы говорите, что у вас все в порядке со встроенными функциями Windows , ниже я предоставил несколько решений для пакетных файлов с операциями администратора и не-администратора, которые я тестировал в Windows 7 . Поскольку вы говорите, что у вас запрос на ввод с правами администратора, в этом решении также будет запрашиваться пароль учетных данных / a admin, чтобы запустить его, как и тот, который имеет возможность сохранить для использования в будущем после ввода только в первый раз.


Пакетный файл (запрос администратора)

RUNAS /USER:<administrator> "CMD /C SUBST E: G:\SUBST\E" 
RUNAS /USER:<administrator> "CMD /C NET USE Y: \\SVR\PATH" 

Примечание. При использовании этого метода необходимо вводить пароль учетной записи администратора, с которой вы запускаете команды, как каждый раз при запуске этих команд. CMD /KВместо этого вы можете использовать здесь, если хотите, чтобы командная строка с повышенными привилегиями оставалась в рабочем состоянии после выполнения команд.

введите описание изображения здесь

Удалить сохраненные учетные данные

В диалоговом окне « Выполнить » ( + R) введите rundll32.exe keymgr.dll, KRShowKeyMgrи нажмите Enter. Когда откроется окно « Сохраненные имена пользователей и пароли» , вы можете выделить учетные данные, которые вы хотите удалить, и которые сохранены, а затем нажать « Удалить» .

введите описание изображения здесь


Пакетный файл (Админ с /SaveCred)

RUNAS /USER:<administrator> /SAVECRED "CMD /C SUBST E: G:\SUBST\E" 
RUNAS /USER:<administrator> /SAVECRED "CMD /C NET USE Y: \\SVR\PATH" 

Примечание. При использовании этого метода необходимо ввести пароль учетной записи администратора только при первом его использовании, а затем при последующих запусках, когда вы указываете /SAVECREDпереключатель, вам больше не нужно вводить пароль. CMD /KВместо этого вы можете использовать здесь, если хотите, чтобы командная строка с повышенными привилегиями оставалась в рабочем состоянии после выполнения команд.

введите описание изображения здесь


Пакетный файл (без прав администратора)

SUBST E: G:\SUBST\E 
NET USE Y: \\SVR\PATH 

Примечание: Когда вы используете этот метод, вам не предлагается, и в основном вы работаете как пользователь без повышенных прав, вы вошли в систему с точки зрения безопасности.


Дополнительные ресурсы

Сок Pimp IT
источник
@Ross - я написал вам ответ, который я протестировал и подтвердил работу с Windows 7 в соответствии с моей интерпретацией всей предоставленной вами информации. Таким образом, в общей сложности есть два разных способа запуска с повышенными правами администратора, и без повышенных прав это то же самое, что вы делаете сейчас для команд без повышенных прав. Вы все еще можете сохранить ярлык в командный файл и дать несколько горячих клавиш или что-то еще с этими решениями, если хотите. Возможно, вы могли бы использовать гораздо более простой метод, но мне кажется, что он довольно прост, и я уже связал кусочки для вас, поэтому, возможно, вы можете использовать один из этих методов
Pimp Juice IT
Очевидно, вы можете смешивать и подбирать команды соответственно для любых ваших потребностей, но у меня есть каждый метод в отдельных разделах плюс некоторые ресурсы для чтения ниже. Рад помочь или ответить на дополнительные вопросы, если у вас есть какие-либо тоже.
Сок Pimp IT
Я попробовал это, и это не сделало то, что я хотел, поэтому я попытаюсь добавить больше деталей к вопросу
Росс
@Ross Итак, вы пробовали это с помощью этих методов, а не щелкнув правой кнопкой мыши и работая от имени администратора, верно? Если да, то добавьте больше подробностей, чтобы я мог провести дополнительное тестирование, чтобы выяснить, в чем проблема.
Сок Pimp IT
1
Хорошо, да, это делает то, что я просил - я запутался, пытаясь запустить файлы на диске SUBST - который еще не был заменен на уровне безопасности
Росс