【說明】
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...