Мне нужно иметь возможность запускать Word, Excel, ECT ... как другой пользователь. Это также должно происходить, когда вы открываете .docx, .doc, ect ...

Я полагаю, что нужно отредактировать реестр и добавить туда команду, чтобы при запуске .exe он запускался от имени другого пользователя.

Есть лучший способ сделать это?

2 ответа2

1

Да. Напишите пакетный файл для установки аргумента в качестве переменной. Затем запустите нужное приложение с помощью команды runas или psexec и передайте переменную приложению в качестве параметра. Затем установите пакетный файл в качестве приложения по умолчанию для типа файла.

set arg1=%1
runas /user:<UserName> "C:\Program Files\GIMP 2\bin\gimp-2.8.exe" %1

Проблема с runas заключается в том, что вам нужно будет вводить пароль каждый раз. Возможно, вы захотите использовать psexec, поскольку вы также можете написать пароль.

set arg1=%1
psexec -u user -p password "C:\Program Files\GIMP 2\bin\gimp-2.8.exe" %1
0

Я думаю, что когда вы запускаете процесс, пользователь, которому он принадлежит, совпадает с пользователем, которому принадлежит родительский процесс. То есть, если вы запустите командную строку как Gandalf, а затем запустите Notepad.exe вы запустите Notepad как Gandalf, даже если вы вошли в систему как Sauron.

Имея это в виду, мне кажется, что вы хотите запустить Windows Explorer как пользователь по вашему выбору (используя runas), и тогда все, что вы запускаете через него, будет запускаться под выбранным вами пользователем, включая исполняемые файлы, ярлыки и файлы (когда вы "запускаете" файл через проводник Windows, он просто запускает приложение, с которым он связан, и передает имя файла в качестве аргумента). Просто обязательно убейте Windows Explorer, прежде чем запускать его, иначе он просто откроет какую-то папку.

Боюсь, я не могу это проверить, поскольку в моей системе только одна учетная запись пользователя.

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