有些批處理需要很高的權限執行才能達到我們所需要的效果,將以下代碼放入批處理最頂部就可以實現以管理員身份運行了。
@echooff
>nul2>&1"%SYSTEMROOT%\system32\cacls.exe""%SYSTEMROOT%\system32\config\system"
if'%errorlevel%'NEQ'0'(
gotoUACPrompt
)else(gotogotAdmin)
:UACPrompt
echoSetUAC=CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echoUAC.ShellExecute"%~s0","","","runas",1>>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit/B
:gotAdmin
ifexist"%temp%\getadmin.vbs"(del"%temp%\getadmin.vbs")
擴展資料
bat常用命令:
1、Echo命令
語法:echo[{on|off}][message]
ECHO[ON|OFF]?打開回顯或關閉回顯功能。
ECHO顯示當前回顯設置。
ECHO[message]?顯示信息。
echooff表示在此語句後所有運行的命令都不顯示命令行本身;默認是on,on時會顯示如:C:\文件夾路徑>命令行。
在實際應用中我們會把這條命令和重定向符號(也稱為管道符號,壹般用>>>^)結合來實現輸入壹些命令到特定格式的文件中。
Sample:echooff
Sample:echohelloworld?(顯示出“helloworld”)
Sample:echoWindowsRegistryEditorVersion5.00>c:\setupreg.reg(此前還沒有setupreg.reg這個文件)
Sample:echo"SourcePath"="D:\\Win2003\\">>c:\setupreg.reg?(追加內容進setupreg.reg這個文件)
2、@命令
表示不顯示@後面的命令,(在入侵過程中自然不能讓對方看到妳使用的命令啦)
@與echooff相象,但它是加在每個命令行的最前面,表示運行時不顯示這壹行的命令行(只能影響當前行)。
Sample:@echooff?(此語句常用於開頭,表示不顯示所有的命令行信息,包括此句)
Sample:@echopleasewaitaminite...
Sample:@formatX:/q/u/autoset
(format這個命令是不可以使用/y這個參數的,可喜的是微軟留了個autoset這個參數給我們,效果和/y是壹樣的。)
3、Goto命令
語法:gotolabel(label是參數,指定所要轉向的批處理程序中的行。)
指定跳轉到標簽行,找到標簽行後,程序將處理從下壹行開始的命令。
label標簽的名字可以隨便起,但是最好是有意義的,字母前必須加個冒號“:”來表示這個字母是標簽。
goto命令就是根據這個冒號來尋找下壹步跳到到那裏。經常與if配合使用,根據不同的條件來執行不同的命令組。