![如何从命令提示符运行提升的命令提示符?](https://linux22.com/image/496911/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6%E8%BF%90%E8%A1%8C%E6%8F%90%E5%8D%87%E7%9A%84%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6%EF%BC%9F.png)
我已通过 psexec 远程连接到 Windows 7 计算机,并在 Windows 7 计算机上运行远程命令提示符。我尝试执行的命令需要在提升的命令提示符下运行才能正常工作。
如果我的起点是未提升的命令提示符并且我无法访问 GUI,那么如何获得提升的命令提示符?
答案1
我以前也曾为此苦苦挣扎,但没能解决。唯一的办法就是创建一个计划任务,然后从 cmd 会话中执行它。
答案2
连接后似乎很难做到。微软有一个动力玩具安装以在命令中强制提升,但由于需要显示和接受提示,我不知道这在您的场景中如何工作(我想根本没有)。
elevate cmd.exe
但是,使用 Powershell 远程处理可能会解决这个问题,因为据我所知,远程连接时权限会提升。我猜 psexec 也应该能够实现这种支持 - 但你必须在连接时请求权限提升的上下文 - 而不是事后。
当然,计划任务技巧似乎确实有效......^^
答案3
在 Vista 中,您可以使用脚本从命令行禁用 UAC。我们使用它来禁用 UAC、重新启动计算机、运行我们的脚本/安装,然后再次启用 UAC,最后重新启动计算机。
我敢打赌 Win7 也有类似的方法,尽管我认为命令已经改变了。不过,它们只是注册表设置,因此直接在注册表中编写脚本相当容易。
只要您的脚本支持重启,这应该不难实现......
— 特隆德
答案4
PSExec 有指定用户名和密码的选项,当在需要访问网络资源的远程计算机上运行任务时,这是必需的(否则 PSExec 仅限于本地资源)。使用适当的帐户连接应该可以为您提供所需的访问权限:尝试psexec -u <用户名> -p
此外,runas 命令会以指定的权限运行命令(甚至是 cmd)。由于上述问题,我不知道它与 PSExec 配合得如何,但可以使用以下语法来提升权限:
runas /user:<domain>\<username> cmd
系统将提示您输入密码;如果输入正确,您将在新的命令提示符中以指定帐户的权限运行。不过,权限可能会受到 PSExec 运行时的权限限制。