2013-11-21 82 views
0

因此,我正在嘗試創建一個.bat以運行在Win7中的特定程序。作爲管理員運行BAT(不帶快捷方式)

我使用命令:

的taskkill/F/IM「LCore.exe」

中的.bat需要爲了工作,它要以管理員身份運行,似乎讓我創建了一個快捷方式它將按照另一個線程(How to code a BAT file to always run as admin mode?)中指定的管理模式自動運行。

但是,使用Microsoft鼠標和鍵盤中心映射其中一個附加鍵以運行快捷方式時,它會自動運行快捷方式的目標,而不是不具有所需管理權限的快捷方式本身(選擇時要映射快捷方式,它會自動將路徑更改爲目標,手動設置路徑會返回「未找到」錯誤)。

所以基本上我想知道是否有另一種方式,不涉及創建一個快捷方式來自動運行具有提升特權的.bat。

+0

鏈接問題的答案爲您提供了創建批處理文件的其他示例,該文件使用提升的權限運行而不使用快捷方式。你嘗試過'runas'方法嗎? –

回答

1
@ECHO OFF 

OPENFILES>NUL 2>&1 
IF "%ERRORLEVEL%"=="0" GOTO :YouAreAdmin 
GOTO :GetAdmin 

:GetAdmin 
ECHO.Set UAC = CreateObject^("Shell.Application"^) > "StartAsAdmin.vbs" 
ECHO.UAC.ShellExecute "%~fs0", "", "", "runas", 1 >> "StartAsAdmin.vbs" 
StartAsAdmin.vbs 
DEL "StartAsAdmin.vbs" 
EXIT /B 

:OK 
REM Your code starts here! 
ECHO. 
ECHO. If you see this, you have started as admin this bat file. 
PAUSE>NUL 
EXIT 

對不起,我還是新的! :)

因此,首先,命令檢查是否以管理員身份運行程序,如需要管理員權限的任何命令。如果在命令後鍵入>NUL 2>&1,CMD將隱藏該命令的任何消息並重定向錯誤。因此,如果您在運行諸如之類的簡單命令操作時遇到問題,則您唯一可能遇到的錯誤是該批處理文件沒有管理員權限。如果%ErrorLevel%爲0(您沒有運行該命令的錯誤),那麼您似乎以管理員身份啓動應用程序,因此它會跳轉到:OK標籤。但是如果%ErrorLevel%不是0(有問題),那麼應用程序似乎沒有管理員權限。因此,它將以管理員身份從該批處理文件生成的臨時VBScript自動啓動,然後啓動並刪除。

0

在Windows 7中,您不需要編寫其他腳本,因爲它具有內置的「PowerShell」工具。請嘗試以下操作:

powershell.exe start-process taskkill.exe -verb runas -argumentlist '/f /im "LCore.exe"' 
相關問題