一、配置自动登录
可以通过注册表来配,也可以通过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
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会有个提示,忽略即可