Я пытаюсь написать командный файл, который должен запускать некоторые команды с использованием учетной записи локального администратора (запуск / остановка службы) и некоторые команды с использованием вошедшего в систему пользователя (копирование файлов из каталога пользователя), и у меня возникают проблемы. Я пробовал следующие команды:
Руны с / savecred
runas /user:(PC name)\(admin username) /savecred "net stop \"(service name)\""
runas /user:(PC name)\(admin username) /savecred "sc stop \"(service name)\""
При использовании /savecred
мне не предлагается пароль. Вместо этого окно командной строки кратковременно вспыхивает и исчезает. Я не могу сказать, что находится в этом окне. Служба не остановлена.
Руны без / savecred
runas /user:(PC name)\(admin username) "net stop \"(service name)\""
runas /user:(PC name)\(admin username) "sc stop \"(service name)\""
Эти команды запрашивают у меня пароль, но затем демонстрируют то же поведение, что и приведенные выше команды: на короткое время появляется окно командной строки, и служба не останавливается.
В идеале я хотел бы сохранить пароль для сеанса, так как мне нужно будет запускать больше команд с подробностями.
Возможно ли это и если да, что я делаю не так?
источник
runas /user:(PC name)\(username) /savecred "net stop \"(service name)\"" >> log.txt
ничего не выводится в файл журнала.LOGBATCH.BAT yourbatch.bat any_parameters_your_batch_needs
он создаст файл журнала, содержащий все команды / действия, выполненные командойyourbatch.bat
Дайте нам знать, что вы там видите.Ответы:
Вы можете добавить следующее в ваш скрипт, и он заставит его работать с повышенными правами. Не нужно ничего скачивать.
источник
Requesting administrative privileges...
на экран до истечения времени ожидания.разделите ваш пакетный файл на две части. Часть, которую вы хотите запустить как admincmd вставить в system32. Часть, которую вы хотите запустить в обычном cmd, вставьте ее в обычную папку, и отсюда вызовите второй пакетный файл, который там есть system32. Таким образом, вторая часть всегда запускается в admincmd. Я попробовал это, и это работает для меня.
источник
Если вы не возражаете против стороннего программного обеспечения, вы можете попробовать запустить как пароль runasspc. Это сохранит ваш пароль в зашифрованный файл. Пароль не должен быть выставлен в командном файле.
источник
Команда "Runas" не будет "sudo" вашей командой.
Чтобы сделать это из командного файла, вам нужно «поднять» команды, которые вы порождаете. Загрузите скрипты Elevate Powertoy.
http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx
Запустите ваши команды как:
или
источник
runas /user:$PcName\$Username /savecred "elevate.cmd sc stop \"$ServiceName\""
,runas /user:$PcName\$Username /savecred "elevate.cmd net stop \"$ServiceName\""
,runas /user:$PcName\$Username /savecred "elevate.cmd net stop $ServiceName"
и каждый из них возвращает эту ошибку: RUNAS ОШИБКА: Невозможно запустить - elevate.cmd чистая остановка alfrescoTomcat -2147467259: Неизвестная ошибкаЯ использую следующий код:
Поместите его после выключения @echo и замечаний.
источник
Упрощенный ответ (дополнение к user325534), если вам нужно только начать работать в каком-то каталоге с расширенным доступом:
источник
Этот код позволяет cmd запрашивать пароль пользователя. Пользователь должен ввести свой пароль, а затем
executable.bat
он будет запущен от имени администратораmain.bat
executable.bat
источник