我目前正在Windows 7中成功以bat文件的形式运行启动脚本(我插入了一个新的注册表项,并将bat文件路径作为值
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run)
。
现在,我需要在启动时运行另一个bat文件,但是具有提升的权限(以管理员身份),并且无需手动确认提示。
我如何才能做到这一点,最好是没有外部程序?
我目前正在Windows 7中成功以bat文件的形式运行启动脚本(我插入了一个新的注册表项,并将bat文件路径作为值
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run)
。
现在,我需要在启动时运行另一个bat文件,但是具有提升的权限(以管理员身份),并且无需手动确认提示。
我如何才能做到这一点,最好是没有外部程序?
Answers:
请参阅本文:使Vista在启动时使用Task Scheduler启动受UAC限制的程序。
本文介绍如何使用任务计划程序以提升的特权启动启动程序。根据您的情况,可能需要进行一些细微的更改,但本文的编写效果很好,并带有屏幕截图。
制作两个批处理文件:
StartAs.bat包含以下内容:
runas /user:SomeLocalAdminAccount c:\Users\MyUser\StartupWhat.bat
StartWhat.bat包含您要运行的命令。
hstart.exe-在http://www.ntwind.com/software/hstart.html上替换了第三方方start.exe
调用有点麻烦,但是效果很好。
Runas / user:SomeLocalAdminAccount
这里必须是这样的:
runas /noprofile /user:mymachine\administrator cmd
runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc
runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""
也许UACPass(免费)将解决此问题:
做完了 该程序现在应以管理员身份运行,而无需UAC提示。
该程序甚至具有add to startup
:-D 选项。
您的程序仅在登录后运行(或者我认为是这样)。
您也可以创建一个快捷方式并指定该快捷方式的文件应提升运行。
(在某些高级选项框中。)