如何在.bat文件中添加管理员权限?

时间:2013-10-27 01:52:09

标签: windows batch-file ip

如何在简单的.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();
}

我认为你明白了问题是什么。

对不起任何错误。

3 个答案:

答案 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>