通过winrm、自动化助手tat无法达到在系统内部执行命令的效果时,可以尝试这种办法:
保持vnc登录状态,通过tat创建计划任务,再触发计划任务执行
比如以前我在A机器winrm远程到B机器,调用B机器的3dsmax跑渲染失败后来我用了上面这个办法则OK
还有一次,我通过系统内部执行.vbs脚本进行windows update执行脚本OK,但是通过winrm调用执行这个.vbs脚本执行到中途会异常退出,后来用了上面这个办法试则OK
有的程序在电脑上执行没问题就是因为电脑登录状态且一直有屏幕,因此要设置自动登录,这样机器每次重启后就会自动进入桌面(vnc是已登录状态),进入桌面的时候就会执行startup目录的程序
startup目录有2个:
当前用户startup目录,比如
运行shell:startup
C:UsersAdministratorAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup
公用startup目录:
运行shell:common startup
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup
设置了自动登录和开机计划任务,开机计划任务可能由于多种原因并未达到预期效果的话,设置自动登录并将程序快捷方式放置在startup目录尤其是公用startup目录则一定能执行到。
代码语言:powershell复制#具体化密码
#具体化密码
#具体化密码
#设置自动登录
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v "DefaultUserName" /d "Administrator" /t REG_SZ /f
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v "DefaultPassword" /d "密码" /t REG_SZ /f
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v "AutoAdminLogon" /d "1" /t REG_SZ /f
#提前在B机器演练好一个可以成功跑完渲染的.bat文件,比如D:doubleclick.bat,然后创建计划任务调用这个.bat即可
#如果是自动化助手TAT下发指令,建议指定用户级别为Administrator,如果是默认的SYSTEM用户级别,一些命令的参数格式可能会有出入
schtasks.exe /create /tn "MicrosoftWindowsdoubleclick.bat" /ru Administrator /rl highest /sc ONLOGON /tr "cmd.exe /c D:doubleclick.bat" /f
schtasks /change /tn "MicrosoftWindowsdoubleclick.bat" /st 00:00 /sd 1900/01/01 /ru Administrator /rp "密码"
schtasks /run /tn "MicrosoftWindowsdoubleclick.bat"
schtasks /change /tn "MicrosoftWindowsdoubleclick.bat" /DISABLE
schtasks /delete /tn "MicrosoftWindowsdoubleclick.bat"