Windows设置开机启动挂载cfs,设置计划任务同步文件到cfs

2023-05-09 20:36:55 浏览数 (1)

一、配置自动登录

可以通过注册表来配,也可以通过Autologon配置

注册表配置示例:

把如下代码(具体化密码)另存为autologon.reg双击导入并重启机器即可实现自动登录(重启后打开vnc,发现已经自动登录到桌面)

代码语言:javascript复制
REGEDIT4
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon]
"AutoAdminLogon"="1"
"DefaultUserName"="Administrator"
"DefaultPassword"="密码"

二、新建计划任务

配置自动登录后,运行taskschd.msc或者开始菜单 → Windows管理工具 → 任务计划程序 → 任务计划程序库 → 右侧空白处右击“新建任务”

如果是执行命令,管理员身份打开cmd,执行

代码语言:javascript复制
schtasks.exe /create /tn "RunWhenStart" /ru Administrator /rl highest /sc ONSTART /delay 0000:59 /tr "cmd.exe /c c:task.bat" /f

执行完成后手动修改下触发程序里的触发条件的启动时间为1900年的1月1日0点(因为默认启动时间是创建任务的那一刻的时间,关机后再开机,当时时间服务没起来,少8个小时,启动时间在接近未来8小时,可能会导致重启后任务不能立即执行,而手动修改启动时间到1900年1月1日0点就没有这个问题了)

当然,也可以执行schtasks.exe /change命令修改启动时间,例如

代码语言:javascript复制
schtasks /create /tn "MyTask" /ru SYSTEM /rl highest /tr "powershell.exe -File C:tasks.ps1" /sc onstart /delay 0000:30 /f 2>$null
schtasks /change /tn "MyTask" /st 00:00 /sd 1900/01/01

c:task.bat的内容示例:

代码语言:javascript复制
@echo off
start /w /b c:vbs.bat
c:sleep.exe 40
schtasks.exe /create /tn "copy" /ru Administrator /rl highest /SC DAILY /MO 1 /tr "cmd.exe /c c:test.bat" /ST 00:00 /RI 5 /DU 24:00 /f
echo end>c:end.log
exit

c:sleep.exe(2003年的Windows资源工具包包含sleep.exe命令,我已经提取)

http://windows-1251783334.cos.ap-shanghai.myzijiebao.com/sleep.exe

sleep.exe.zip

timeout /nobreak /t 40跟c:sleep.exe 40有区别,后者更优

c:vbs.bat内容示例:

代码语言:javascript复制
@echo off
wscript.exe /nologo c:vbs1.vbs
wscript.exe /nologo c:vbs2.vbs
wscript.exe /nologo c:vbs3.vbs
wscript.exe /nologo c:vbs4.vbs
timeout /nobreak /t 40
subst W: P:
c:windowsexplorer.exe
exit

subst命令基于共享路径创建的盘符带红叉,但能正常使用

c:vbs1.vbs内容示例:

代码语言:javascript复制
CreateObject("WScript.Shell").Run "net use g: 10.255.4.91:/r0gmnzbp /persistent:no",0

c:vbs2.vbs内容示例:

代码语言:javascript复制
CreateObject("WScript.Shell").Run "net use h: \10.255.4.91r0gmnzbp /persistent:no",0

c:vbs3.vbs内容示例:

代码语言:javascript复制
CreateObject("WScript.Shell").Run "net use p: 10.255.4.91:/r0gmnzbp /persistent:no",0

c:vbs4.vbs内容示例:

代码语言:javascript复制
CreateObject("WScript.Shell").Run "net use q: \10.255.4.91r0gmnzbp /persistent:no",0

c:test.bat内容示例:

代码语言:javascript复制
@echo off
date /t>>c:log.txt
time /t>>c:log.txt
copy /y c:vbs* y:>>c:log.txt
exit

以上这些实现了:创建开机计划任务,先挂网络盘,然后基于已挂好的网络盘用subst命令创建一个盘符出来,然后创建计划任务每隔5分钟执行一次包含copy动作的c:test.bat

也可以通过在startup目录放.cmd、.bat、.vbs来设置开机任务

C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp

RunWhenStart.cmd内容示例:

代码语言:javascript复制
psexec64.exe -accepteula -nobanner -is cmd.exe /c start /w /min mount -o nolock mtype=hard 10.255.4.91:/r0gmnzbp X:
mount -o nolock mtype=hard 10.255.4.91:/r0gmnzbp y:
@rem c:windowsexplorer.exe
@rem copy /y c:vbs* y:

psexec64那句是提权到system用户下执行了挂载cfs的命令,以system用户挂载cfs形成的盘符图标是带红叉的,能正常访问

mount那句就是普通挂载,并没有提权,因此形成的盘符图标是不带红叉的

下图中的红叉盘符,W:是subst命令产生的,X:是提权后产生的,都能正常访问

网络挂盘图标有红叉时,打开powershell会有个提示,忽略即可

0 人点赞