'sudo'不是内部或外部命令,,,,的解决办法

【说明】

Windows系统从 Vista 版本开始加入了 UAC 机制,这导致没有足够权限的程序无法获取到一些关键资源。在 Linux 下我们可以使用 sudo 命令方便地提升当前程序的执行权限,但在 Windows 中却通常只能右键单击程序图标,再选择 “以管理员身份运行”。这种必须使用鼠标点击的方式很不方便,尤其在我们希望自动化执行一些任务时更是显得碍手碍脚。

我们可以自己写一个运行在 Windows 系统的 sudo 命令工具。

【源码】

    1. ‘ShellExecute 方法
    2. ‘作用: 用于运行一个程序或脚本。
    3. ‘语法
    4. ‘      .ShellExecute "application", "parameters", "dir", "verb", window
    5. ‘      .ShellExecute ‘some program.exe‘, ‘"some parameters with spaces"‘, , "runas", 1
    6. ‘关键字
    7. ‘   application   要运行的程序或脚本名称
    8. ‘   parameters    运行程序或脚本所需的参数
    9. ‘   dir           工作路径,若未指定则使用当前路径
    10. ‘   verb          要执行的动作 (值可以是 runas/open/edit/print)
    11. ‘                   runas 动作通常用于提升权限
    12. ‘   window        程序或脚本执行时的窗口样式 (normal=1, hide=0, 2=Min, 3=max, 4=restore, 5=current, 7=min/inactive, 10=default)
    13. Set UAC = CreateObject("Shell.Application")
    14. Set Shell = CreateObject("WScript.Shell")
    15. If WScript.Arguments.count<1 Then
    16. WScript.echo "语法:  sudo <command> [args]"
    17. ElseIf WScript.Arguments.count=1 Then
    18. UAC.ShellExecute WScript.arguments(0), "", "", "runas", 1
    19. ‘    WScript.Sleep 1500
    20. ‘    Dim ret
    21. ‘    ret = Shell.Appactivate("用户账户控制")
    22. ‘    If ret = true Then
    23. ‘        Shell.sendkeys "%y"
    24. ‘    Else
    25. ‘        WScript.echo "自动获取管理员权限失败,请手动确认。"
    26. ‘    End If
    27. Else
    28. Dim ucCount
    29. Dim args
    30. args = NULL
    31. For ucCount=1 To (WScript.Arguments.count-1) Step 1
    32. args = args & " " & WScript.Arguments(ucCount)
    33. Next
    34. UAC.ShellExecute WScript.arguments(0), args, "", "runas", 5
    35. End If

【效果】

新建一个文本文件,将上面代码复制粘贴到文件中,并重命名文本文件为 sudo.vbs (注意后缀改成了 .vbs)。将 sudo.vbs 所在路径添加到环境变量 PATH 中,这样我们就可以在任意路径下使用 sudo 命令获取管理员权限了。

使用时我们可以在命令行输入

sudo  <command>  [args...]

效果如 图1、图2、图3 所示:

图1

图2

图3

【注意事项】

这个 sudo 命令并不能直接获取到管理员权限,而只是在程序需要管理员权限时自动弹出请求窗口,然后我们手动允许其以管理员权限运行。

如果有办法获取到 “用户帐户控制” 窗口的句柄,或者将焦点移动到 “用户账户控制” 窗口,就可以直接自动获取到管理员权限。

'sudo'不是内部或外部命令,,,,的解决办法

原文地址:https://www.cnblogs.com/shangren/p/8135791.html

时间: 2024-10-09 23:50:55

'sudo'不是内部或外部命令,,,,的解决办法的相关文章

yiic执行出现不是内部或外部命令的解决办法

右击我的电脑-->属性-->高级系统设置-->高级-->环境变量-->系统变量 设置为"D:\Program Files (x86)\wamp\bin\php\php5.3.10(个人的根据自己的实际文件目录为准),这里我使用的是wamp集成开发环境 添加环境变量后,一定要关闭dos命令窗口重新打开(否则依然会提示:'不是内部或外部命令的解决办法')!

&quot;javac不是内部或外部命令&quot;的解决办法

“javac不是内部或外部命令”,而此时的java环境是好用的: 1.先检查 JAVA_HOME  =   C:\Program Files\Java\jdk1.7.0_45 classpath   =   .;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar Path   =   %JAVA_HOME%\bin; 2.在cmd中执行“set”命令,确认变量是否正确. 注意如果%JAVA_HOME%在显示set时没有被真实值替换,那就是环境变量配错

关于win10系统1709版本安装JDK出现变量配置正确但仍有“java不是内部或外部命令”的解决办法

背景:联想拯救者R720笔记本,系统一键还原了,需要重新安装一部分软件,最基本的就是JDK,但今天在安装时遇到了问题,之前安装的1.8版本,没有仔细配置环境变量,这一次安装的是1.7版本的,仔仔细细配置了变量,却一直报错! 即:"'java'不是内部或外部命令,也不是可运行的程序或批处理文件.". 寻找原因: 1.认为是32位JDK与64位系统冲突,百度了一下----------兼容. 2.认为是配置变量时,少了标点符号,仔细对比之后,发现并没有. 3.将问题搜索区间缩小,百度之后,发

jenkins构建python项目时,提示python不是内部或外部命令的解决办法

1.回到 Jenkins 首页,点击 “构建执行状态”或“Build Executor Status” ,右则会列出本机信息. 完美解决!!! 原文地址:https://www.cnblogs.com/Layee/p/12110171.html

【win7下安装node.js错误:roling back action】与【&quot;grunt&quot; 不是内部或外部命令】 解决方法

[win7下安装node.js错误:roling back action] 解决方法: Node.js 服务器端的JavaScript Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用 本文为大家讲解的是在win7下安装node.js到最后时出现回滚,安装失败的解决方法,感兴趣的同学参考下. 问

cmd显示“该命令不是内部或外部命令”的解决方法

问题:Window7系统,运行cmd,在命令提示符窗口下运行常用命令,显示"该命令不是内部或外部命令,也不能运行可执行文件或批处理文件". 问题原因:系统变量中的path缺少%SystemRoot%\system32路径 解决办法:给系统变量中的"PATH"变量添加:"%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem"变量值

使用adb的时候出现 adb不是内部或者外部命令如何解决

我们经常看见在cmd命令行输入"adb devices" 时就会出现"adb不是内部命令或者外部命令....",出现这个问题主要是windows系统环境变量没设置好,我们可以自己手动来设置一下. 打开计算机--属性--高级系统设置--环境变量--Path,见下图设置,在已有的变量后加上";C:\adb"[引号内红色部分. 设置好了之后电脑重新注销一下就能生效了.

vue不是内部或外部命令的解决方法

1.在nodejs的安装目录下,找到vue.cmd,将此路径加到环境变量中,我是通过nvm管理node版本的,路径是C:\Users\hy\AppData\Roaming\nvm\v6.10.0,关闭再打开终端输入vue -V,回车.. 2.进入NodeJS文件的目录下,输入vue -V,回车.. 3.进入管理员模式,再次进入node安装的文件夹目录输入vue -V指令

关于安装nodejs后npm不是内部或外部命令的解决方法

把nodejs安装到E盘后只能在安装目录使用nodejs,无法在全局变量里面使用. 检查全局变量Path后发现问题 D:\SOFT_PHP_PACKAGE\mysql\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0";E:\nodejs 改成: D:\SOFT_PHP_PACKAGE\mysql\bin;E:\nodejs;