'sudo'不是內部或外部命令,,,,的解決辦法

【說明】app

        Windows系統從 Vista 版本開始加入了 UAC 機制,這致使沒有足夠權限的程序沒法獲取到一些關鍵資源。在 Linux 下咱們可使用 sudo 命令方便地提高當前程序的執行權限,但在 Windows 中卻一般只能右鍵單擊程序圖標,再選擇 「以管理員身份運行」。這種必須使用鼠標點擊的方式很不方便,尤爲在咱們但願自動化執行一些任務時更是顯得礙手礙腳。ide

        咱們能夠本身寫一個運行在 Windows 系統的 sudo 命令工具。工具


【源碼】post

    1. 'ShellExecute 方法  
    2.   
    3. '做用: 用於運行一個程序或腳本。  
    4.   
    5. '語法  
    6. '      .ShellExecute "application", "parameters", "dir", "verb", window  
    7. '      .ShellExecute 'some program.exe', '"some parameters with spaces"', , "runas", 1  
    8.   
    9. '關鍵字  
    10. '   application   要運行的程序或腳本名稱  
    11. '   parameters    運行程序或腳本所需的參數  
    12. '   dir           工做路徑,若未指定則使用當前路徑  
    13. '   verb          要執行的動做 (值能夠是 runas/open/edit/print)  
    14. '                   runas 動做一般用於提高權限  
    15. '   window        程序或腳本執行時的窗口樣式 (normal=1, hide=0, 2=Min, 3=max, 4=restore, 5=current, 7=min/inactive, 10=default)  
    16.   
    17.   
    18. Set UAC = CreateObject("Shell.Application")  
    19. Set Shell = CreateObject("WScript.Shell")  
    20. If WScript.Arguments.count<1 Then  
    21.     WScript.echo "語法:  sudo <command> [args]"  
    22. ElseIf WScript.Arguments.count=1 Then  
    23.     UAC.ShellExecute WScript.arguments(0), "", "", "runas", 1  
    24. '    WScript.Sleep 1500  
    25. '    Dim ret  
    26. '    ret = Shell.Appactivate("用戶帳戶控制")  
    27. '    If ret = true Then  
    28. '        Shell.sendkeys "%y"          
    29. '    Else  
    30. '        WScript.echo "自動獲取管理員權限失敗,請手動確認。"  
    31. '    End If  
    32. Else  
    33.     Dim ucCount  
    34.     Dim args  
    35.     args = NULL  
    36.     For ucCount=1 To (WScript.Arguments.count-1) Step 1  
    37.         args = args & " " & WScript.Arguments(ucCount)  
    38.     Next  
    39.     UAC.ShellExecute WScript.arguments(0), args, "", "runas", 5  
    40. End If 

【效果】spa

        新建一個文本文件,將上面代碼複製粘貼到文件中,並重命名文本文件爲 sudo.vbs (注意後綴改爲了 .vbs)。將 sudo.vbs 所在路徑添加到環境變量 PATH 中,這樣咱們就能夠在任意路徑下使用 sudo 命令獲取管理員權限了。命令行

        使用時咱們能夠在命令行輸入rest

        sudo  <command>  [args...]orm

        效果如 圖一、圖二、圖3 所示:blog


圖1ip


圖2


圖3

 


【注意事項】

        這個 sudo 命令並不能直接獲取到管理員權限,而只是在程序須要管理員權限時自動彈出請求窗口,而後咱們手動容許其以管理員權限運行。

        若是有辦法獲取到 「用戶賬戶控制」 窗口的句柄,或者將焦點移動到 「用戶帳戶控制」 窗口,就能夠直接自動獲取到管理員權限。

相關文章
相關標籤/搜索