折腾了winserver2022的nas,需要给组网程序手动配置一下自启动,winserver默认要登录用户才能自启动启动文件夹下的程序,远程开机后会导致不能及时自启,遂使用多种方式添加自启动,以免远程开机,重启后失联,文末附上自用的管理脚本,后面出一套linux的
方法1:使用任务计划程序(推荐)
1.1 基本配置
# 打开任务计划程序
taskschd.msc
配置步骤:
- 右侧点击"创建任务"
- 名称:
程序名(随意)
- 触发器:选择"计算机启动时"
- 选择无论是否登录都要启动
- 操作:选择"启动程序"
- 程序路径:填写你的程序完整路径
- 输入账户密码,完成创建
1.2 高级配置脚本
也可以使用shell批量添加
@echo off
echo 配置NAS自启动任务...
schtasks /create /tn "服务名" /tr "C:\YourApp\YourProgram.exe" /sc onstart /delay 0000:30 /ru SYSTEM /f
echo 任务创建完成!
pause
方法2:注册表自启动
2.1 注册表脚本
保存为.bat文件
@echo off
echo 添加注册表自启动项...
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "任务名" /t REG_SZ /d "C:\YourApp\YourProgram.exe" /f
echo 注册表项添加完成!
pause
2.2 PowerShell 注册表脚本
保存为.ps1文件
# 以管理员身份运行
$regPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
$appPath = "C:\YourApp\YourProgram.exe"
if (Test-Path $appPath) {
Set-ItemProperty -Path $regPath -Name "任务名" -Value $appPath
Write-Host "自启动项已添加" -ForegroundColor Green
} else {
Write-Host "程序路径不存在" -ForegroundColor Red
}
方法3:启动文件夹方法
该方法适合一般程序,组网,远程控制程序使用该方案会因为你没法登录导致你不能连接
3.1 批处理脚本
@echo off
set "sourceApp=C:\YourApp\YourProgram.exe"
set "startupFolder=%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp"
echo 创建启动快捷方式...
powershell -Command "$s=(New-Object -COM WScript.Shell).CreateShortcut('%startupFolder%\NAS_Service.lnk');$s.TargetPath='%sourceApp%';$s.WorkingDirectory='C:\YourApp';$s.Save()"
echo 启动快捷方式创建完成!
pause
集合版:NAS自启动管理脚本
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
set "APP_NAME=NAS Service" #改成你自己的目标程序
set "APP_PATH=C:\YourApp\YourProgram.exe" #改成你自己的程序路径
set "APP_ARGS=" #启动参数(可选)
set "TASK_NAME=NAS_Auto_Start" #改成你自己的任务名
set "DELAY=30"
:menu
cls
echo ================================
echo NAS 自启动配置工具
echo ================================
echo 1. 创建计划任务自启动
echo 2. 创建注册表自启动
echo 3. 创建启动文件夹快捷方式
echo 4. 删除所有自启动配置
echo 5. 查看当前自启动项
echo 6. 退出
echo ================================
set /p choice=请选择操作 [1-6]:
if "%choice%"=="1" goto task_scheduler
if "%choice%"=="2" goto registry
if "%choice%"=="3" goto startup_folder
if "%choice%"=="4" goto cleanup
if "%choice%"=="5" goto show_current
if "%choice%"=="6" goto exit
echo 无效选择,按任意键继续...
pause >nul
goto menu
:task_scheduler
echo 正在创建计划任务...
schtasks /create /tn "%TASK_NAME%" /tr "\"%APP_PATH%\" %APP_ARGS%" /sc onstart /delay 0000:%DELAY% /ru SYSTEM /f
if !errorlevel! equ 0 (
echo ✓ 计划任务创建成功
) else (
echo ✗ 计划任务创建失败
)
pause
goto menu
:registry
echo 正在添加注册表自启动...
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "%TASK_NAME%" /t REG_SZ /d "\"%APP_PATH%\" %APP_ARGS%" /f
if !errorlevel! equ 0 (
echo ✓ 注册表项添加成功
) else (
echo ✗ 注册表项添加失败
)
pause
goto menu
:startup_folder
echo 正在创建启动快捷方式...
set "startup_path=%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp"
powershell -Command "$s=(New-Object -COM WScript.Shell).CreateShortcut('%startup_path%\%TASK_NAME%.lnk');$s.TargetPath='%APP_PATH%';$s.WorkingDirectory='%~dp1';$s.Arguments='%APP_ARGS%';$s.Save()"
if !errorlevel! equ 0 (
echo ✓ 启动快捷方式创建成功
) else (
echo ✗ 启动快捷方式创建失败
)
pause
goto menu
:cleanup
echo 正在清理所有自启动配置...
schtasks /delete /tn "%TASK_NAME%" /f 2>nul
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "%TASK_NAME%" /f 2>nul
del "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp\%TASK_NAME%.lnk" 2>nul
echo ✓ 自启动配置已清理
pause
goto menu
:show_current
echo 当前自启动配置:
echo.
echo [计划任务]
schtasks /query /tn "%TASK_NAME%" 2>nul && echo ✓ %TASK_NAME% 存在 || echo ✗ %TASK_NAME% 不存在
echo.
echo [注册表项]
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "%TASK_NAME%" 2>nul && echo ✓ 注册表项存在 || echo ✗ 注册表项不存在
echo.
echo [启动文件夹]
if exist "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp\%TASK_NAME%.lnk" (
echo ✓ 启动快捷方式存在
) else (
echo ✗ 启动快捷方式不存在
)
pause
goto menu
:exit
echo 退出配置工具
exit
后台应用:服务方式自启动
@echo off
echo 安装NAS服务...
sc create "NASService" binPath= "C:\YourApp\YourProgram.exe" start= auto DisplayName= "服务名"
if %errorlevel% equ 0 (
echo ✓ 服务安装成功
sc start NASService
echo ✓ 服务已启动
) else (
echo ✗ 服务安装失败
)
pause
最后:
winserver依旧推荐使用计划任务
- ✅ 可以设置启动延迟,避免系统资源竞争
- ✅ 可以配置触发条件
- ✅ 支持日志记录和错误处理
- ✅ 权限控制更灵活
选择适合你的方法进行配置即可!
Comments NOTHING