请注意:
我希望脚本在我按下电源按钮时立即运行,无需任何人登录。因此我不能简单地使用启动文件夹或任务计划程序,因为这两者仅在用户登录时调用程序。
我为什么需要这个:
我正在尝试在旧的 Windows 10 PC 上安装无头以太坊矿机。有时我在家里会遇到短暂的电源故障,但时间长到足以让矿机离线。我希望能够通过按下电源按钮重新启动挖矿过程,而不必经历处理 RDP 的整个麻烦。
我的脚本:
@echo off
echo Starting Etherminer >> log.txt
goto START
:START
setx GPU_FORCE_64BIT_PTR 0
setx GPU_MAX_HEAP_SIZE 100
setx GPU_USE_SYNC_OBJECTS 1
setx GPU_MAX_ALLOC_PERCENT 100
setx GPU_SINGLE_ALLOC_PERCENT 100
etherminer.exe --farm-recheck 200 -G -S us1.ethermine.org:4444 -FS us2.ethermine.org:4444 -O <My_Wallet_Hash>.<My_System_Name> >> log.txt 2>>&1
echo Error: Etherminer Application Exited >> log.txt
echo Attempting to Restart >> log.txt
goto START
该脚本本身运行良好,但现在我需要帮助让它在系统启动时启动。
感谢您的时间,也感谢您能提供的任何帮助。
答案1
您可以简单地使用 Windows 的“任务计划程序”在开机时执行脚本(假设您具有管理权限)。要创建新任务,请执行以下操作:
- 按键盘上的 WINDOWS+R
- 输入“taskschd.msc”并按 ENTER
- 单击位于“操作”部分的“创建基本任务...”
- 现在向导将帮助您创建任务
要在系统启动时启动该任务,您还需要执行以下操作(完成上述步骤并选择“启动时”作为触发器后):
- 双击您之前创建的任务
- 点击“更改用户或组...”
- 输入“LocalService”并按 ENTER
- 转到“条件”选项卡并取消选中所有选项,除非你想要一个条件
- 单击“确定”保存更改
测试新任务后,您可能会想知道为什么在 Windows 8 或 Windows 10 上使用“关机”然后重新启动电脑时,您的任务没有被触发。这是由“快速启动”功能引起的,该功能在每个 Windows 8 或 10 系统上默认启用,它通过休眠核心系统实现更快的启动,核心系统仅在关机时将内核和其他系统相关组件的 RAM 数据复制到硬盘上的文件中,并在启动时将该数据复制回来。因此,您的任务通常永远不会被触发,因为系统从不完全关机,也从不完全启动,除非进行系统更新或使用 Windows 的“重新启动”功能。
要停用“快速启动”,请转到“控制面板>硬件和声音>电源选项>系统设置”,然后取消选中“打开快速启动”框。
要在启动时运行脚本而不禁用“快速启动”,请查看以服务方式运行它可以帮助您将脚本注册为服务。BAT 脚本的示例:
RunAsService.exe install "yourservicename" "C:\Windows\System32\cmd.exe" "/C C:\Program Files\myscripts\dosomething.bat"
提示:如果 RunAsService.exe 返回“从服务器返回了一个引用。”,请打开其属性,转到“兼容性”选项卡,单击“更改所有用户的设置”,选中“以管理员身份运行此程序”,然后单击两次“确定”。
在每次启动时运行脚本/程序而不禁用“快速启动”的另一种方法是使用“taskschd.msc”设置一个任务,即使启用了“快速启动”,该任务的触发器也是每次启动时生成的系统事件。
答案2
也许您的计算机会自动登录?运行>“control userpasswords2”并取消勾选需要密码登录。
或者您可以引用注册表中的脚本:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run