У меня есть файл bat, который удаляет файлы в какой-то папке (папка профиля). Но у меня нет доступа к этой папке. Но доступ к папке есть у другой учетной записи. Как запустить командный файл из одной учетной записи, войдя в другую учетную запись, у которой есть доступ, и удалить эти файлы?
Используйте команду runas.
или
В проводнике Windows вы можете щелкнуть правой кнопкой мыши файл bat и выбрать «Запуск от имени» ... затем ввести свои учетные данные.
или
Вы можете запустить его из запланированной задачи, которая позволяет вам установить учетные данные.
У вас есть два варианта. Один означает, что вам придется каждый раз вручную передавать пароль (не идеально), другой позволит вам передать пароль из командного файла (но это означает, что любой может прочитать командный файл и узнать пароль). Вы выбираете, с каким недостатком предпочли бы жить:
rem This is the test.bat file
runas /noprofile /env /user:myDomain\myAccount "cmd.exe /c del c:\temp\*.log"
Использовать PsExec команда из пакета Microsoft SysInternals PsTools:
rem This is the test.bat file
psexec -u myDomain\myAccount -p myPassword -d -e cmd.exe /c "del c:\temp\*.log"
Обратите внимание: кавычки находятся в разных местах для каждого примера. Это сделано намеренно. У обеих команд есть причуды, когда дело доходит до передачи команды с большим количеством аргументов / переключателей. Кавычки должны быть в точных местах, которые я показал (по отношению к команде <arguments>
)