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

2022-09-03 21:24:25 字數 2168 閱讀 7760

【說明】

windows系統從 vista 版本開始加入了 uac 機制,這導致沒有足夠許可權的程式無法獲取到一些關鍵資源。在 linux 下我們可以使用 sudo 命令方便地提公升當前程式的執行許可權,但在 windows 中卻通常只能右鍵單擊程式圖示,再選擇 「以管理員身份執行」。這種必須使用滑鼠點選的方式很不方便,尤其在我們希望自動化執行一些任務時更是顯得礙手礙腳。

我們可以自己寫乙個執行在 windows 系統的 sudo 命令工具。

【原始碼】

'shellexecute 方法  

'作用: 用於執行乙個程式或指令碼。  

'語法  

'      .shellexecute 'some program.exe', '"some parameters with spaces"', , "runas", 1  

'關鍵字  

'   parameters    執行程式或指令碼所需的引數  

'   dir           工作路徑,若未指定則使用當前路徑  

'   verb          要執行的動作 (值可以是 runas/open/edit/print)  

'                   runas 動作通常用於提公升許可權  

'   window        程式或指令碼執行時的視窗樣式 (normal=1, hide=0, 2=min, 3=max, 4=restore, 5=current, 7=min/inactive, 10=default)  

set shell = createobject("wscript.shell")  

if wscript.arguments.count<1 then  

wscript.echo "語法:  sudo [args]"  

elseif wscript.arguments.count=1 then  

uac.shellexecute wscript.arguments(0), "", "", "runas", 1  

'    wscript.sleep 1500  

'    dim ret  

'    if ret = true then  

'        shell.sendkeys "%y"          

'    else  

'        wscript.echo "自動獲取管理員許可權失敗,請手動確認。"  

'    end if  

else  

dim uccount  

dim args  

args = null  

for uccount=1 to (wscript.arguments.count-1) step 1  

args = args & " " & wscript.arguments(uccount)  

next  

uac.shellexecute wscript.arguments(0), args, "", "runas", 5  

end if 

【效果】

新建乙個文字檔案,將上面**複製貼上到檔案中,並重命名文字檔案為 sudo.vbs (注意字尾改成了 .vbs)。將 sudo.vbs 所在路徑新增到環境變數 path 中,這樣我們就可以在任意路徑下使用 sudo 命令獲取管理員許可權了。

使用時我們可以在命令列輸入

sudo  [args...]

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

圖1

圖2

圖3

【注意事項】

這個 sudo 命令並不能直接獲取到管理員許可權,而只是在程式需要管理員許可權時自動彈出請求視窗,然後我們手動允許其以管理員許可權執行。

如果有辦法獲取到 「使用者帳戶控制」 視窗的控制代碼,或者將焦點移動到 「使用者賬戶控制」 視窗,就可以直接自動獲取到管理員許可權。

不是內部或外部命令

問題描述 使用cmd 執行某個路徑下 一般是c program files 或者e program files 或者d program files 下面的某個 的exe檔案時,往往彈出這樣的錯誤,並且你發現你也配置了環境變數,網上的那些方法,比如將program files 改為 progra 1然...

adb 不是內部或外部命令

解決方案 在我的電腦 屬性裡面找到環境變數,找到系統變數裡面的 path 變數,為其新增以下路徑 配置path環境變數 這個是我的sdk所在的路徑 d andr adt bundle windows x86 adt bundle windows x86 adt bundle windows x86 ...

Express不是內部或外部命令

前幾天express 推出了4.0,得知這個訊息,自己嘗試了一下,突然發現用以前的文件上的操作出現了各種問題。結果只能去看文件,現在在這個給大家分享下4.0版本的安裝。先說下如果需要用express 3.x版本,直接使用nmp 中的 字元確定版本,指令如下 npm install g express...