在Windows命令行中获取管理权限

在Windows命令行中获取管理权限

我并不是想做一些厚颜无耻的事情,但我的需要只是使用批处理脚本中的以下命令来添加或删除 IP 路由的两个脚本:

添加路线:

@echo off
route add -p 20.20.188.0 mask 255.255.255.0 192.168.122.254
exit

删除路线:

@echo off
route delete 20.20.188.0
exit

我的问题是,现在我无法通过双击批处理文件来运行它。我总是必须右键单击并选择:Run as Administrator选项,即使我的用户属于管理员组。

有什么方法可以引入像sudo在 Linux 中那样的命令或其他任何可以让我只需双击文件即可让我高兴的命令。

更新:

我尝试过runas解决方案这里但正如答案所述:

但请注意,这并不完全像 sudo - 您不能使用它来提升自己的权限,只能以其他用户的身份运行某些操作。如果您已经拥有管理权限,则对您的帐户执行 runas 操作将为您提供与常规命令相同的访问权限(当然,除非您以其他管理员帐户的身份运行,这会将这些管理员权限授予新 shell)。

这不能解决我的问题。

答案1

创建此类批处理脚本的快捷方式,然后

  • 在上下文菜单中单击特性
  • 在下面捷径点击先进的按钮
  • 选择以管理员身份运行

答案2

正如你在您的评论中提到使用runas相同的用户不会提升您的权限。据我所知,windows 中没有内置任何可以提升已在运行的命令提示符权限的方法。

过去我曾使用过第三方工具,例如Elevate.exe它将为你完成这项工作,你只需像使用一样使用它runas,只需将elevate程序添加到你的PATH变量中,然后就可以了

elevate route add -p 20.20.188.0 mask 255.255.255.0 192.168.122.254

答案3

我使用“eldo”和“eldoGUI”来实现此目的(运行批处理文件)。它们可用这里,尽管我根本不知道最初是谁创造了它们。

像这样调用 eldoGUI:

Z:\eldoGUI.exe Z:\Backup-Music.cmd

这将产生通常的 UAC 提示并继续运行命令。

相关内容