以管理员身份运行bat文件,但显示在用户的配置文件中

时间:2015-11-15 06:42:52

标签: windows batch-file cmd remote-access administrator

我编写此脚本是为了在另一台计算机上远程运行文件,但是我想以管理员用户身份运行它,但要在用户的计算机上显示它。如何以远程管理员身份运行脚本,但要在用户的配置文件中显示该脚本?

@echo off

color 0a

SET /p ComputerName=ComputerName:

SET /p UserName=Please enter the username:

SET /p UserNamePassword=Please enter Username Password:

 tasklist /s \\%ComputerName% /u %UserName% /p %UserNamePassword% /FI "memusage gt 200000"

SET /p Value=would you like to continue? Press 1 if yes.Press 2 to exit:


IF %Value% EQU 1  pushd \\NetworkPath & copy batfile.bat \\%ComputerName%\c$\Users\%UserName%\Desktop & popd & psexec -i -s -d \\%ComputerName% -u %UserName% -p %UserNamePassword% "C:\Users\%UserName%\Desktop\batfile.bat"
IF %Value% EQU 2 exit

2 个答案:

答案 0 :(得分:0)

您可以尝试使用命令行nircmd elevate "the path of your program.bat"启动该程序。或者您可以创建另一个.bat文件,读取此内容:

nircmd elevate "the path of your program.bat"
exit

要打开您的主程序,只需打开第二个.bat程序,它将以管理员身份打开您的主程序,然后自行关闭。

Nircmd不是默认的Windows命令。您必须通过单击"下载NirCmd"从this website下载它。网页底部的按钮。选择保存此.zip文件,完成后将其解压缩。然后只复制文件" nircmd.exe"进入你的" system32"目录或%systemroot%。现在,nircmd是您可以在" cmd.exe"中使用的命令的一部分。

我的电脑上有nircmd,如果你不相信它。这是一个非常有用的工具。以上链接还列出了所有功能及其说明。

答案 1 :(得分:0)

您也可以使用它来以批量文件的形式运行管理员:

SET ADMIN=0
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (GOTO askAdmin)
SET ADMIN=1
GOTO gotAdmin
:askAdmin
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

将它放在批处理文件的顶部