始终以另一个用户身份运行应用程序(不是基于快捷方式)

始终以另一个用户身份运行应用程序(不是基于快捷方式)

我需要能够以不同的用户身份运行 Word、Excel 等。当您打开 .docx、.doc 等时也必须这样做...

我的猜测是编辑注册表并在其中添加一个命令,以便在执行 .exe 时它以另一个用户身份启动。

有一个更好的方法吗?

答案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

答案2

我认为,当您启动一个进程时,它所属的用户与拥有父进程的用户相同。也就是说,如果您以 Gandalf 的身份启动命令提示符,然后运行,Notepad.exe那么您将以 Gandalf 的身份运行记事本,即使您以 Sauron 的身份登录也是如此。

考虑到这一点,在我看来,您想要做的就是以您选择的用户身份运行 Windows 资源管理器 (使用runas),然后您通过它运行的任何内容都将在您选择的用户下运行 - 包括可执行文件、快捷方式和文件 (当您通过 Windows 资源管理器“运行”文件时,它只运行与其关联的应用程序并将文件的名称作为参数传递)。只需确保在运行 Windows 资源管理器之前将其终止,否则它只会打开一些文件夹。

恐怕我无法测试这一点,因为我的系统上只有一个用户帐户。

相关内容