如何在简单的.bat文件中添加管理权限?
我正在手动将IP和DNS地址更改为特定的地址,但是当我启动它时什么也没做,当然是因为缺少“以管理员身份运行”权限。 我知道我总是可以以管理员身份运行.bat文件,但是出于其他原因对我没什么帮助。
所以我基本上需要的是这样的东西:
<command to set Administrator rights>
netsh interace ip set address name="Ethernet" static x.x.x.x y.y.y.y z.z.z.z
netsh interface ip set dns name="Ethernet" static x.x.x.x
此外,如果这样可行,是否可以以某种方式重新启动以太网适配器,直到它处于指定的网络名称?
例如: 如果它显示网络6重新启动并重新启动,直到它到达网络3? 简单循环:
While(Ethernet.name != "Network 3")
{
Ethernet.restart();
}
我认为你明白了问题是什么。
对不起任何错误。
答案 0 :(得分:1)
使用psexec
中的Microsoft Administrative Tools
从命令行以管理员身份运行进程,因为runas
不接受管理员密码作为参数。
http://technet.microsoft.com/pl-pl/sysinternals/bb897553.aspx
答案 1 :(得分:0)
如果psexec因公司策略而不受欢迎,那么更通用的方法是将其安排为任务。参见
schtasks /create /?
和note / rl
答案 2 :(得分:0)
我知道这与你提出的问题没什么关系,但我觉得我需要分享:
@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges... Click yes.
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "%~s0", "%params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
<YOUR BATCH SCRIPT HERE>