我正在编写客户端/服务器检查程序,但需要以管理员身份运行。 我想让它在我的网络和用户上静静地运行,并且我不希望“以管理员身份运行”提示符。 是否有任何可以放入批处理文件以使其以管理员身份自动运行的开始代码/以管理员身份运行的批处理脚本
回答
NOPE - 创建快捷方式[ - >兼容性 - >“以管理员身份运行此程序”]解决方案不起作用。
此选项是灰色的在Windows 7即使禁用UAC
-
NOPE - 在 “运行方式/ ENV /用户:域\管理员”
还不够因为它会提示用户输入管理员密码。
-
YES - 禁用UAC - >创建一个使用工作任务调度
这为我工作: 下创建任务调度工作,并使其运行与管理员权限的用户。 明确标记:“以最高权限运行” 禁用UAC,因此不会有提示来运行此任务
如果您愿意,可以通过编辑注册表让脚本启用UAC。 在我的情况下,通过创建一个Windows虚拟机,其中UAC在图像中被禁用,该脚本只运行一次。
还在期待为以管理员身份运行脚本,最好的办法,但无太多的麻烦。
其可能使用的语法:
RUNAS [/profile] [/env] [/netonly] /user:user Program
Key :
/profile Option to load the user's profile (registry)
/env Use current environment instead of user's.
/netonly Use the credentials specified only for remote connections.
/user Username in form [email protected] or DOMAIN\USER
([email protected] is not compatible with /netonly)
Program The command to execute
例如:
runas /env /user:domain\Administrator <program.exe/command you want to execute>
这将提示输入他不想要的密码。 – eddyq
@eddyq不错,但是这回答了问题的标题,即使问题的主体改变了他所说的他想要的内容。 – leetNightshade
标题不是问题。正文是问题。标题是标题。身体优先,因为它包含细节。 –
你有几个选项
如果您只需要使用批处理文件和本机命令执行此操作,请查看How can I auto-elevate my batch file, so that it requests from UAC admin rights if required?。
如果第三方实用程序是一个选项,您可以使用工具Elevate。这是一个可执行文件,您可以使用要运行的程序作为参数进行调用。
喜欢这个:elevate net share ...
。
你可以把它作为一个启动项目...启动项目不会显示提示以管理员身份运行。
创建一个快捷方式,并设置快捷方式始终以管理员身份运行。
如何对野人论坛Make a batch file to run cmd as administrator解决方案:
请在编辑一个批处理文件,然后nameit.bat创建它的快捷方式。 Nameit.bat - 快捷方式。然后右键单击Nameit.bat - 快捷方式 - >属性 - >快捷方式选项卡 - >高级,然后单击以管理员身份运行。从快捷方式执行它。
您不能在批处理文件或指向它的快捷方式上设置'以管理员身份运行',令人讨厌。 – StormPooper
你不能在批处理文件中设置它 - 但是你可以**设置它在指向它的快捷方式上 – icc97
由于我还没有发现任何简单的脚本,到目前为止,这是我的两分钱:
set ELEVATE_APP=Full command line without parameters for the app to run
set ELEVATE_PARMS=The actual parameters for the app
echo Set objShell = CreateObject("Shell.Application") >elevatedapp.vbs
echo Set objWshShell = WScript.CreateObject("WScript.Shell") >>elevatedapp.vbs
echo Set objWshProcessEnv = objWshShell.Environment("PROCESS") >>elevatedapp.vbs
echo objShell.ShellExecute "%ELEVATE_APP%", "%ELEVATE_PARMS%", "", "runas" >>elevatedapp.vbs
DEL elevatedapp.vbs
问候,
尼卡。
如果以上的答案是不是你喜欢,你可以使用AutoIt的运行文件(或什么都文件)作为其全权证书的特定用户。
样品脚本,将使用用户privelages运行的程序。
installAdmin()
Func installAdmin()
; Change the username and password to the appropriate values for your system.
Local $sUserName = "xxxxx"
Local $sPassword = "xxx"
Local $sDirectory = "C:\ASD4VM\Download\"
Local $sFiletoRun = "Inst_with_Privileges.bat"
RunAsWait($sUserName, @ComputerName, $sPassword, 0, $sDirectory & $sFiletoRun)
EndFunc ;==>Example
AutoIT can be found here. - >它使用被编译成可运行.exe文件一个.ua3格式。
我做了这个轻微修改马特的脚本,使其能够从一个脚本(刚加入这需要UAC调用任意脚本的开始)内运行,但下面的代码读取一个更好的解决方案,我
:: ### START UAC SCRIPT ###
if "%2"=="firstrun" exit
cmd /c "%0" null firstrun
if "%1"=="skipuac" goto skipuacstart
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges)
:getPrivileges
if '%1'=='ELEV' (shift & goto gotPrivileges)
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
cmd /c "%0" skipuac firstrun
cd /d %~dp0
:skipuacstart
if "%2"=="firstrun" exit
:: ### END UAC SCRIPT ###
:: ### START OF YOUR OWN BATCH SCRIPT BELOW THIS LINE ###
我修改使用两个文件的参数,你可以看到,这是不是特别优雅,但做这项工作(和你总是可以通过保留第一隐藏他们走在尾部:VE在博客上找到使用虚拟占位符的参数很少)。此外,AFAIK Matt的脚本不支持文件路径中的空格,并且此限制也适用于我对此脚本的修改。
这个问题似乎是VBS处理这些路径的方式固有的,但在下面的链接中有一个更好的基于VBS的调用UAC的解决方案,它可以在单个脚本中运行,而不需要像这样的解决方法参数和也支持在文件路径空间:
http://pcloadletter.co.uk/2012/12/11/uac-elevation-for-batch-script/
这个环节上的脚本,使稍有不同VBS电话,你会发现,由于某种原因与空间绕开的问题。
@echo off
call :isAdmin
if %errorlevel% == 0 (
goto :run
) else (
echo Requesting administrative privileges...
goto :UACPrompt
)
exit /b
:isAdmin
fsutil dirty query %systemdrive% >nul
exit /b
:run
<YOUR BATCH SCRIPT HERE>
exit /b
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %~1", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B`
这对我来说非常合适。谢谢。 – Emad
以下是一个变通:
- 创建.bat文件的快捷方式
- 打开属性快捷的。在快捷方式标签下,点击高级。
- 勾选“以管理员身份运行”
运行该快捷方式将执行批处理脚本管理员。
- 1. 在Jenkins上以管理员身份运行批处理文件?
- 2. 批处理文件...以管理员身份运行
- 3. 批处理文件以管理员身份自动运行
- 4. Windows:批处理文件:仅以管理员身份运行
- 5. 批处理文件下管理员身份运行总是
- 6. 以管理员身份从powershell执行批处理文件
- 7. 获取当前脚本Powershell是否以管理员身份执行(以管理员身份运行)
- 8. 以PowerShell脚本中的管理员身份运行命令。 UAC
- 9. 以批处理文件的管理员身份运行PowerShell功能
- 10. Inno Setup以管理员身份运行提取的批处理文件
- 11. 以管理员身份使用javascript运行批处理的简单方法
- 12. 以当前目录的管理员身份运行批处理文件(.bat)
- 13. 以管理员身份运行程序
- 14. 以管理员身份运行实例
- 15. CreateProcess以管理员身份运行
- 16. Java:以管理员身份运行
- 17. WNetGetConnection并以管理员身份运行
- 18. 如何以管理员身份运行?
- 19. 以管理员身份运行R
- 20. 以管理员身份运行VBS
- 21. 以管理员身份运行链接
- 22. 以管理员身份运行cgi perl脚本
- 23. 以管理员身份运行脚本文件
- 24. 如何在启动时以管理员身份运行脚本
- 25. 在Windows中以管理员身份运行python脚本
- 26. 强制PowerShell脚本以管理员身份运行
- 27. 如何以管理员身份运行PowerShell脚本?
- 28. 为什么我的批处理脚本以管理员身份运行时无法执行?
- 29. Windows CMD批处理文件以管理员身份运行命令
- 30. 如何创建批处理文件以管理员身份运行cmd
UAC部分 禁用UAC C:\ Windows \ System32 \ cmd.exe/k%windir% \ System32 \ reg.exe启用UAC C:\ Windows \ System32 \ cmd.exe/k%\ System32 \ reg.exe ADD HKLM \ SOFTWARE \ Microsoft \ Windows \ windir%\ System32 \ reg.exe添加HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System/v EnableLUA/t REG_DWORD/d 1/f – zenin