我编写此脚本是为了在另一台计算机上远程运行文件,但是我想以管理员用户身份运行它,但要在用户的计算机上显示它。如何以远程管理员身份运行脚本,但要在用户的配置文件中显示该脚本?
@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
答案 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" )
将它放在批处理文件的顶部