1

如何在一个简单的 .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

此外,如果这可行,是否可以以某种方式重新启动以太网适配器,直到它位于指定的 Network-name 处?

例如:如果它显示网络 6 重新启动并重新启动,直到它到达网络 3?简单循环:

While(Ethernet.name != "Network 3")
{
Ethernet.restart();
}

我想你明白问题所在了。

抱歉有任何错误。

4

3 回答 3

1

使用psexecfromMicrosoft Administrative Tools从命令行以管理员身份运行进程,因为runas不接受管理员密码作为参数。

http://technet.microsoft.com/pl-pl/sysinternals/bb897553.aspx

于 2013-10-27T01:56:29.787 回答
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>
于 2013-11-19T02:52:05.900 回答
0

如果 psexec 由于公司政策不受欢迎,更一般的方法是将其安排为任务。看

schtasks /create /?

并注意 /rl

于 2013-10-27T04:29:26.807 回答