来电自启、免密登录直接进入桌面、创建 windows 任务计划程序,使exe程序开机自启动运行,使用bat脚本监测exe程序运行并启动exe

目录

场景说明:C#控制台应用程序(或其他exe),使其在服务器/电脑开机时自动启动并运行,并有一个bat脚本监控该exe的运行状况,未运行则启动exe。

一、服务器设置来电自启

二、服务器/电脑设置免密登录,开机后自动进入桌面

 三、创建Windows 任务计划程序,使exe程序开机后自动运行(需要管理员权限运行的程序也适用)

四、使用bat脚本检测exe程序是否在运行,若未在运行,启动该exe程序。

五、为bat脚本创建windows任务计划,使其开机启动运行/每天特定时刻运行


场景说明:C#控制台应用程序(或其他exe),使其在服务器/电脑开机时自动启动并运行,并有一个bat脚本监控该exe的运行状况,未运行则启动exe。

一、服务器设置来电自启

        适用场景:工业服务器在许多场景下,不一定有人员操作,需要服务器来电后自动运行。

        方法:BIOS设置中打开来电自启选项。

        1.进入BIOS,不同品牌有不同的操作,具体品牌可以查询官方说明。DELL服务器是在开机/重启时左上角会出现BIOS选项时按下【F2】.。不确定BIOS什么时候出现可以一直快速按【F2】。

        2.进入System Setup界面,选择System BIOS。进入System BIOS Settings,选择System Security(下拉寻找)。AC Power Recovery(即来电后电脑是否开机)选择【On】,意为来电后电脑/服务器开机。此处其他选项中Off的意思就是不关机;Last就是保持断电前的服务器状态,如果断电前关机,选择Last,那么来电后保持关机状态,断电前开机,选择Last,来电后就会开机。

        3.点击Finish、Yes、OK等保存设置并退出BIOS。

二、服务器/电脑设置免密登录,开机后自动进入桌面

        适用场景:工业上服务器来电自启后,需要按Ctrl+Alt+Del输入密码才能进入桌面,但服务器是无人员操作自动运行,需要开机后直接进入桌面。

        方法:更改用户账户设置。

        1.按【win】+【R】进入运行,输入“netplwiz”,点击确定。

        2.取消勾选“要使用本机算计,用户必须输入用户名和密码”。

        3.弹出输入用户名和密码的弹窗,正常输入密码(此处许多教程选择不输入任何密码,我实践后发现并不能成功,但是正常输入密码可以成功,大家自行尝试),点击确定,重启时就不需要密码自动进入桌面了。

 三、创建Windows 任务计划程序,使exe程序开机后自动运行(需要管理员权限运行的程序也适用)

        适用场景:(需要管理员权限的)exe程序需要在服务器上开机即运行。

        方法:创建windows任务计划。

        1. 打开“控制面板”并找到“管理工具”选项。在其中找到“任务计划程序”并点击打开。或直接在开始菜单旁搜索“任务计划程序”应用,并打开。

        2. 在任务计划程序界面中,可以看到已创建的任务列表。如果要创建新任务,右键点击“任务计划程序(本都)”,选择“创建基本任务”或“创建任务”。输入任务名,描述可以描写该任务的功能。

        3.选择任务的触发器为【计算机启动时】,这是任务何时启动的条件。其他场景下触发器可以是用户登录时、特定时间或特定事件。

        4. 在选择触发器后,指定程序脚本为需要以管理员权限启动的exe程序,必须是exe,不能是快捷方式,我随便放了一个360浏览器的exe。

        5. 完成时,勾选“当单击‘完成’时,打开此任务属性对话框”,就会自动弹出属性继续配置。如果没勾选需要自己右键点击这个任务,选择属性进入面板。

        6.进入属性,点击“更改用户和组

        7.进入下图,点击“高级

        8.进入高级,点击【立即查找】,出现搜索结果,选择【Administrators】,点击确定

        9.出现如下电脑名称\Administrators,点击确定

        10. 返回属性页如下,勾选【使用最高权限运行】,点击【触发器】。(如果此处点击确定会退出属性面板)

        11.进入触发器配置,双击该触发器进入编辑,或选中该触发器点击编辑

        12.开始任务选择【登录时】,所有用户,高级设置按需选择,勾选【已启用】,点击确定。重启就可以看到成功了。

        13.如果比较担心程序开机不运行,也可以增加一个每天特定时刻启动的触发器,多一重保险。在第11所示页面点击新建,选择【每天】,时间随意,高级设置按需选择,默认勾选【已启用】,点击确定。可以看到触发器有两个。 我已经测试过了,只有程序不在运行时,每天的这个触发器才会触发。程序在运行时,到触发器时间这个程序不会重复运行,不用担心每天都运行一个的情况。

 

四、使用bat脚本检测exe程序是否在运行,若未在运行,启动该exe程序。

        适用场景:exe比较容易挂,需要自动重启该exe

        方法:写一个bat脚本,运行该脚本就可以监测exe运行状态,并且为bat脚本也创建一个任务计划,使bat脚本开机自启/每天特定时刻启动,保证该exe正常运行。

      

        bat脚本内容参考以下文章,名为“Windows脚本监测守护进程.bat”~

         版权声明:本文为博主XXXANDLOKI原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
        原文链接:https://blog.csdn.net/XXXANDLOKI/article/details/128854213

        1.新建一个txt文本,bat脚本代码如下

@echo off
:run

tasklist /FI "IMAGENAME eq 你的程序.exe" 2>NUL | find /I /N "你的程序.exe">NUL

if "%ERRORLEVEL%"=="0" (
    echo Program is running    @REM 运行则输出Program is running
    
    for /f "skip=3 tokens=2 " %%i in ('TASKLIST /FI "IMAGENAME eq 你的程序.exe" /FI "STATUS eq NOT RESPONDING"') do (
        echo %Date% %time% %%i
        taskkill /F /PID %%i /T    @REM 进入这里就是无响应 自己 kill 掉
    )
) else (
    echo Program is NONONO running   @REM 不在运行则输出Program is NONONO running
    
    start ""/D"该exe所在路径如C:\Users"你的程序.exe   @REM 表示运行该路径下的你的程序.exe
)

choice /t 10 /d y /n > null    @REM 10表示10秒检测一次,按需修改
goto run

        2.按需求修改

        “你的程序.exe”需要替换成被检测的程序名.exe

        echo Program is running和echo Program is NoNoNo running可以自行替换

        “该exe所在路径如C:\Users”代表着exe程序所在位置,也需要自行替换成有效路径

        修改完成后首次保存该文本,文件类型选“所有文件”,在名称后加上.bat后缀保存即可,点击运行就成功了(非首次保存为bat有时会失败,可以新建空txt再进行首次保存为bat文件)。

        3.其他:

        下面这句,

start ""/D"该exe所在路径如C:\Users"你的程序.exe   @REM 表示运行该路径下你的程序.exe

        也可以替换成如下内容

start %CD%/你的程序.exe   @REM 程序路径   %CD%表示当前路径

        但是%CD%这个当前路径,有时运行exe出错会识别成C:\Windows\System32,大家看情况使用,或修改bat/exe路径使用。

五、为bat脚本创建windows任务计划,使其开机启动运行/每天特定时刻运行

        参考第三点,为exe创建Windows 任务计划即可。这样保证exe和bat脚本都是开机自启/每天的特定时候触发器检测启动,保证exe正常运行~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值