0

我的工作地点有一个本地网站,其中有一些链接需要管理员权限才能打开。我想知道是否有办法创建一个批处理文件来做到这一点?

最终用户拥有管理员帐户,但我希望在单击链接时提示输入用户名和密码。这可能吗?

我有一个临时解决方案是: START %windir%\system32\runas.exe /user:EMEA\ACCOUNTNAME-%USERNAME% "mmc %windir%\system32\dsa.msc"

例如,这将打开 AD,并且始终以 EMEA\ACCOUNTNAME-%USERNAME% 的身份运行。这也提示输入一个完美的密码。它只有一个缺陷 - 仅限于 ACCOUNTNAME!团队的新成员具有不同的帐户名称,因此由于帐户名称不正确,因此无法识别密码。

例如,我的帐户名称是“ACCOUNTNAME”,所以我单击链接并打开一个 DOS 窗口并显示“输入 EMEA\ACCOUNTNAME-%MyUserName% 的密码”。这对我来说很好,但是拥有不同 AccountName 的人呢?

注意事项:该站点只是基本站点,没有登录选项,因此无法以这种方式解决此问题。

4

2 回答 2

2

经过一番思考,我想出了答案。

以下是打开 Active Directory 的答案:

@echo off
set var=Please Enter the Account name you use here:
set /p USERID= %var%
START %windir%\system32\runas.exe /user:%USERID% "mmc %windir%\system32\dsa.msc"

所以基本上,无论输入是什么并将其存储在“var”中。然后“set /p”接受用户输入,所以我们将该变量设置为等于var。(用户 ID =%var%)

使用用户输入的任何帐户名称启动您想要的任何应用程序(在本例中为 AD)!

于 2013-06-20T07:23:12.820 回答
0
:----------------------------------------------------------------------------------------------------------------------
@echo off
cls
:init
setlocal disabledelayedexpansion
set "batchpath=%~0"
for %%k in (%0) do set batchname=%%~nk
set "vbsgetprivileges=%temp%\oegetpriv_%batchname%.vbs"
setlocal enabledelayedexpansion
:checkprivileges
net file 1>nul 2>nul
if '%errorlevel%' == '0' ( goto gotprivileges ) else ( goto getprivileges )
:getprivileges
if '%1'=='elev' (echo elev & shift /1 & goto gotprivileges)
echo.
echo set uac = createobject^("shell.application"^) > "%vbsgetprivileges%"
echo args = "elev " >> "%vbsgetprivileges%"
echo for each strarg in wscript.arguments >> "%vbsgetprivileges%"
echo args = args ^& strarg ^& " "  >> "%vbsgetprivileges%"
echo next >> "%vbsgetprivileges%"
echo uac.shellexecute "!batchpath!", args, "", "runas", 1 >> "%vbsgetprivileges%"
"%systemroot%\system32\wscript.exe" "%vbsgetprivileges%" %*
exit /b
:gotprivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='elev' (del "%vbsgetprivileges%" 1>nul 2>nul  &  shift /1)
:----------------------------------------------------------------------------------------------------------------------
@echo off
set var=Please Enter the Account name you use here:
set /p USERID= %var%
%windir%\system32\runas.exe /user:%USERID% "cmd /c mmc %windir%\system32\dsa.msc"
ping 127.0.0.1
taskkill /f /im cmd.exe
exit /b n
于 2017-04-18T14:10:42.333 回答