这种方法简化了逻辑,因为它只关注脚本自身是否在给定时间内被关闭,而不是检测其他特定的程序或脚本。这对于一些简单的远程连接使用场景来说可能是足够的,并且避免了诸如路径问题等复杂性。
讲解:我测试了一下,确实可用,但是,感觉应该能更好用一些。因此我又提示AI改进程序的方向。告诉AI目标就行,大部分情况,没必要告诉AI方法,一般它都能搞定。
我问的时候,没加句号,真没必要,这不是我语法错误。是保持原汁原味。
我问:应该再加上一个倒计时显示
AI回答:
要在脚本中添加倒计时显示,我们可以稍微修改脚本,使其在等待期间每秒更新一次显示的剩余时间。这样用户就能清楚地看到在自动关机之前还有多少时间,从而有机会在此期间采取行动(例如手动关闭脚本)。
下面是一个包含倒计时显示的脚本示例,我们可以称之为AutoShutdownWithCountdown.bat:
@echo off
set /a "seconds=120"
:countdown
cls
echo Waiting for remote connection or manual shutdown...
echo.
echo Shutdown in %seconds% seconds...
if %seconds%==0 (
echo No action detected, shutting down...
shutdown /s /f /t 0
)
timeout /t 1 /nobreak > nul
set /a "seconds-=1"
goto countdown
如何工作:
脚本首先设置一个名为seconds的变量,用于存储倒计时的总秒数(这里是120秒,即2分钟)。
进入一个循环,每次循环都会清除屏幕(cls命令),然后显示等待信息和剩余时间。
如果倒计时到达0秒,脚本将显示一条消息提示没有检测到动作,并执行关机命令。
使用timeout命令暂停1秒,然后减少seconds变量的值,再次进入循环,直到seconds变量减到0。
用户如何手动阻止关机:
用户可以在倒计时结束前关闭命令提示符窗口或按Ctrl+C终止脚本,以阻止脚本执行关机命令。
设置脚本开机自启动:
按照之前的方法,将AutoShutdownWithCountdown.bat文件或其快捷方式添加到Windows的"启动"文件夹,以实现开机自启动。
通过这种方式,用户可以清楚地看到剩余时间,并有机会在脚本执行关机操作之前进行干预。这种倒计时功能使得脚本更加用户友好,同时仍然满足自动关机的需求。
测试和讲解:我按照AI提供的方法操作,运行没问题,只是需要登录之后才运行,因此,不符合我的要求。但我不确定我的理解是否正确,因此我向AI提出我的疑问。
我问:
用刚才的win+r键,输入shell:startup,输入刚才的指令,建立刚才指定的文件,登录windows之后,才发现这个启动窗口。是否这个必须登录进入windows,才启动这个监控?这样会有问题的。如果远程没有连接登入,是否就不会执行?我需要的是,不登录也要自动执行。
AI的回答验证了我的想法是正确的:
如果您需要在Windows启动时执行脚本,而不需要用户登录,那么将脚本放在"启动"文件夹中是不够的,因为"启动"文件夹中的项目只有在用户登录后才会执行。对于您的需求,一个更合适的解决方案是使用Windows的任务计划程序(Task Scheduler)来设置脚本在系统启动时自动执行,而不需要任何用户登录。
使用任务计划程序设置脚本自动执行:
打开任务计划程序:
按下Win+R键打开运行对话框,输入taskschd.msc,然后按Enter键。
创建新任务:
在任务计划程序中,选择“操作”菜单中的“创建任务...”。
设置任务属性:
在“常规”选项卡中,给任务命名,并选择“不管用户是否登录都要运行”。
还可以选择“使用最高权限运行”,如果您的脚本需要管理员权限。
设置触发器:
切换到“触发器”选项卡,点击“新建...”。
在“开始任务”下拉菜单中选择“开机时”。
设置操作:
切换到“操作”选项卡,点击“新建...”。
在“操作”下拉菜单中选择“启动程序”。
在“程序或脚本”框中,输入您的脚本的完整路径。
完成设置:
配置任何其他选项(如“条件”和“设置”选项卡中的选项)根据您的需求。
点击“确定”保存任务。
通过这种方式设置后,您的脚本将在系统启动时自动执行,无论是否有用户登录。这对于需要在系统启动时立即开始监控或执行其他任务的场景非常有用。
请注意,使用任务计划程序设置任务时,确保您的脚本和任何相关文件的路径都是正确的,并且您的脚本在没有用户界面的情况下能够正确执行。此外,如果您的脚本需要特定的运行环境或依赖,确保这些在系统启动时就已经可用。
讲解:这确实是一个方法,但是,我觉得,太复杂了,建议AI给一个简单的方法。
我问:
这确实是一个方法,能不能让远程计算保留远程登录的功能的同时,还能自动登录进去,执行这个功能?
AI回答的解决方案:
要保留远程登录功能的同时实现自动登录并执行特定功能,您可以采取以下两步策略:
1. 设置Windows自动登录
首先,您需要配置Windows以便在启动时自动登录到指定的用户账户。这样做会降低安全性,因为任何人在启动时都能访问该用户账户,因此请根据您的安全需求谨慎使用。
如何设置Windows自动登录:
按Win+R键打开运行对话框,输入netplwiz,然后按Enter键。
在打开的“用户账户”窗口中,选择您希望Windows自动登录的账户。
取消选中“要使用本计算机,用户必须输入用户名和密码”的复选框,然后点击“应用”。
在随后出现的对话框中,输入您希望自动登录的用户账户的密码两次,然后点击“确定”。
点击“确定”关闭“用户账户”窗口。
2. 使用任务计划程序执行脚本
然后,您可以使用之前提到的任务计划程序设置,但这次选择在用户登录时而不是系统启动时执行脚本。由于您已经设置了自动登录,这将在系统启动并自动登录后立即执行脚本。
设置任务计划程序在登录时执行脚本:
打开任务计划程序(taskschd.msc)并创建新任务。
在“触发器”选项卡中,选择“新建...”,然后在“开始任务”下拉菜单中选择“登录时”。
在“操作”选项卡中配置您的脚本执行操作,如之前所述。
通过这种方式,您的系统将在启动时自动登录到指定的用户账户,并且随即执行您设置的脚本或程序,同时保留了远程登录的功能。
安全提示:自动登录会使您的系统更容易被未授权访问,特别是如果计算机是公共或易于物理访问的地方。请确保在适用于您的场景时考虑这个因素,并采取适当的安全措施,例如使用强密码、限制物理访问等。
讲解:我按照第一个方法在vmware虚拟机上测试,没问题,很正常。但是,在我们工作的远程小电脑上不行。运行Netplwiz后,发现少了一个【要使用本计算机,用户必须输入用户名和密码】复选框。
这次问AI,给出的解决方案都不太理想,因此我改用谷歌搜索,找到了答案。再次证明,AI不是完成的。
这是我通过查资料,总结出的详细解决方案,小白也能操作。
目标:设置Windows 10自动登录指定用户
步骤1: 打开注册表编辑器
按“Windows徽标键+R”打开“运行”对话框
在对话框中输入“regedit”,然后点击“确定”打开注册表编辑器
步骤2: 修改注册表项找回设置选项
在注册表编辑器左侧窗格中找到路径:
“计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device”
打开“Device”文件夹,找到“DevicePasswordLessBuildVersion”这个项
(一个小技巧,按F3键,搜DevicePasswordLessBuildVersion,直接找到这个项)
右键点击该项,选择“修改”
将数值数据从默认的“1”修改为“0”,然后点击“确定”
步骤3: 重新打开用户账户设置界面
关闭注册表编辑器
按“Windows徽标键+X”,选择“命令提示符(管理员)”
在命令提示符中输入“netplwiz”并回车
步骤4: 设置自动登录指定用户
在打开的“用户账户”窗口中找到需要自动登录的用户
取消选中“登录时输入用户名和密码”复选框
单击“应用”按钮保存设置
重启计算机测试自动登录效果
测试结果:
关机之后,我重新启动了电脑,看到系统自动登录进入Windows,随即弹出了一个倒计时窗口。如果我不关闭这个窗口,系统就会自动关机。然而,一旦我关闭了这个窗口,电脑就不会自动关机了,我便可以持续操作电脑。至此,在AI的帮助下,我快速且完美地解决了问题。
当然,还有一个不太好的消息,我用AI辅助改写的控制板程序表现得不太正常,需要我进一步调试。因此,我再次强调,AI不是万能的,它只是你的强力助手罢了。