|
|
本帖最后由 likeyouli 于 2024-7-2 15:57 编辑
如题,其实以往本人常干的事是优化电脑自启动,把开机自启的软件都停止了 ,这样开机会比较快些。
这次突然想把Lightning大师的桌面硬件信息显示工具 让它开机自启,记忆中注册表中有几个位置就是添加自启项的,我找到了\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 这个位置,新建字符串值,数值数据(V):填入硬件信息显示工具的位置,关闭注册表重启电脑,满以为桌面硬件信息显示工具会在我登录后启动呢,结果是毫无动静,,(也可以用reg命令,效果一样,reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "桌面硬件" /t REG_EXPAND_SZ /d "E:\文件夹\OneDrive\桌面\显示硬件信息工具_2022.06.02_Stable_64-32 (2)\WinosInfo_x64.exe" /f)
经搜索,原来是用户帐户控制(User Account Control,简写作UAC)惹的祸,但我又不想把UAC禁用了,毕竟有不良软件启动的时候提个醒也是不错的,于是想到了任务计划程序,选择 control控制面板、小图标、windows工具(win11)、任务计划程序;"系统工具"->"任务计划程序"->"任务计划程序库";在右方的空白处右击,选择"创建任务",在"常规选项卡"中选择对应的用户账户, 并勾选"使用最高权限运行",点击"触发器" 选项卡,选择"新建",开始任务先择登陆时,点击"操作"选项卡,选择"新建",操作选择启动程序,程序或脚本选择工具的位置,这样就创建开机自启动任务了。
也可以用命令创建:schtasks /create /tn "桌面硬件显示工具" /tr "E:\OneDrive\桌面\显示硬件信息工具_2022.06.02_Stable_64-32 (2)\WinosInfo_x64.exe" /sc onstart /RL HIGHEST--已勾选“使用最高权限运行”,但这里有一个问题,/sc 参数下,只能有一个条件,我没研究出用命令如何创造多个触发器,此外,也默认勾选了“只有在计算机使用交流电源时才启动此任务,如果计算机改用电池电源,则停止”,如果是笔记本或平板用户,要注意。要想避免上述问题,可能需要先使用gui界面设置好后导出为xml,再通过xml执行计划了。 请教大神,如何单纯通过命令,/sc onstart 与/sc ONLOGON 同时创建 ?并且去除勾选使用交流电源?难道真的是没有这样的命令?
schtasks /create /tn "桌面硬件显示工具" /ru system /tr "I:\经过检验需要留存的数据\显示硬件信息工具_WinosInfo_2024050521\WinosInfo.exe" /sc onstart /RL HIGHEST ---必须加上/ru system:显示不管用户是否登录都要运行,否则只在用户登录时运行,没有设置密码自动登录时可能运行不了。
schtasks /create /tn "桌面硬件显示工具" /tr "I:\经过检验需要留存的数据\显示硬件信息工具_WinosInfo_2024050521\WinosInfo.exe" /sc onstart /RL HIGHEST /np--上边也启动不了,限制了system,是不是administrator登录不能启动?用这个后边加上/np试试,这样默认当前用户,且勾选了不管用户是否登录都要运行。
/F --如果指定的任务已经存在,则强制创建任务并抑制警告。
.
实在邪门了,今天测试了好多次,重启了好多次,实在重启烦了,现将摸索的经验归纳如下(条件:win11企业版24H2,administrator账户登录,无密码,自动登录,记得以前测试没遇到这么多问题,这次遇到这么多问题是不是与没有密码有关??):几个条件:①常规,两个条件,一是只在用户登录时运行(这里必须选择一个用户,登录哪个用户就选哪个用户),二是不管用户是否登录都要运行;②触发器,两个条件,一是启动时、在系统启动时,二是登录时、当任何用户登录时;③操作,启动程序,我弄了两个,一个是exe文件,一个是txt文件,这里可以得出结论,只有最上边的可以运行,不知道为什么选择多个启动程序的时候,为什么只能运行最上边一个?
先说能够启动成功的正确结论:常规里必须选择只在用户登录时运行、触发器里必须两个条件(反正开始时用的本贴最上边的schtasks命令创建的在系统启动时运行,结果自启动失败)。
①疑问,为什么必须选用户登录时运行?为什么选择不管用户是否登录都要运行启动失败?真邪门了;②为什么选择在系统启动运行时运行失败?如果选择当用户登录时运行这一个条件可以吗?还是必须得选择两个条件? 改天有空心不烦的时候再测试吧,今天实在重启电脑n次了,烦了。
以上为原贴内容,经过bathome大神指导,原来批处理schtasks不能同时触发多个条件引导,只能用如下方式解决:
PowerShell创建任务计划指定多个触发器和操作
schtasks命令的 /sc 参数不允许同时指定多个触发器(比如系统启动时、用户登录时)
使用 PowerShell 脚本可以实现这个功能:
$ArrayTrig = @(
$(New-ScheduledTaskTrigger -AtStartup),
$(New-ScheduledTaskTrigger -AtLogOn)
)
$Act1 = New-ScheduledTaskAction -Execute "C:\Test\2.9.02-1.bat"
$Act2 = New-ScheduledTaskAction -Execute "C:\Test\2.9.02-2.bat"
Register-ScheduledTask -TaskName "BatHome Job 2.9.02" -Trigger $ArrayTrig -User "System" -Action $Act1,$Act2
见http://www.bathome.net/viewthread.php?tid=64053&from=favorites
|
|