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, ТОГДА другие среды CMD администратора получают диск
  • если я запускаю A.bat в административном CMD, ТОГДА нет административных CMD, кроме временных рун, каждый получает диск, включая оригинальный
  • Если я запускаю A1.bat в cmd без прав администратора, то другие CMD администратора получают диск
  • если я запускаю A.bat в cmd без прав администратора, то среда cmd не получает диск, кроме временного runas.

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

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

NET USE Y: \\SVR\PATH 

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

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

1 ответ1

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 если хотите, чтобы командная строка с повышенными привилегиями оставалась в рабочем состоянии после выполнения команд.

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

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


Пакетный файл (Admin с /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 

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


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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .