跟3dsmax2025环境有关的explorer异常的低概率问题,可通过配置开机计划任务catch异常后重启机器来规避

2024-08-20 16:39:28 浏览数 (3)

有个朋友2024年5月在server2019做了一版3dsmax2025环境的自动登录跑渲染业务的镜像后出现概率性explorer异常问题,在做3dsmax2025环境之前,用server2019配置≤3dsmax2024的渲染环境,没有explorer异常问题,后来保持现有3dsmax2025环境就地升级到server2022系统仍然存在explorer异常问题。

代码语言:txt复制
#配置自动登录,可执行如下命令配置,执行之前请具体化代码中的全部"密码"

#net user Administrator "密码"

$UserName="Administrator"
$NewPassword="密码"
([adsi]"WinNT://$ENV:COMPUTERNAME/$UserName").SetPassword("$NewPassword")

reg query "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /s|findstr "AutoAdminLogon DefaultUserName DefaultPassword DontDisplayLastUserName LastUsedUsername"
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
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v DontDisplayLastUserName /t REG_SZ /d 0 /f
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v "LastUsedUsername" /d "Administrator" /t REG_SZ /f
#reg query "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /s|findstr "AutoAdminLogon DefaultUserName DefaultPassword DontDisplayLastUserName LastUsedUsername"
Start-Process -NoNewWindow -Wait -FilePath "cmd.exe" -ArgumentList "/c reg query `"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon`" /s | findstr `"AutoAdminLogon DefaultUserName DefaultPassword DontDisplayLastUserName LastUsedUsername`""

shutdown -r -t 0

explorer异常具体说来:在server2019是explorer自动注销、在server2022是explorer crash(没有注销成功,但失去了图形界面,需要发送Ctrl Alt Del调出任务管理器重新拉起explorer才能看到界面)

2019:

2022:

临时解决方案:通过开机计划任务catchup异常后重启机器:新建开机计划任务延迟2分钟执行,如果不存在业务进程或explorer.exe进程,则执行重启机器的命令shutdown -r -t 0

代码语言:txt复制
新建开机计划任务延迟2分钟执行,如果不存在业务进程,则执行重启机器的命令shutdown -r -t 0

schtasks /create /tn "RunWhenStart" /ru SYSTEM /rl highest /tr "cmd.exe /c C:RunWhenStart.bat" /sc onstart /delay 0001:59 /f

schtasks /change /tn "RunWhenStart" /st 00:00 /sd 1900/01/01
(中文版是1900/01/01,英文版则是01/01/1900)


C:RunWhenStart.bat内容如下
其实判断逻辑就是explorer正常的时候、explorer异常的时候,主要系统进程和业务进程的差异,可以拿业务进程判断,也可以拿explorer.exe进程判断


拿explorer.exe进程判断

@echo off
tasklist /FI "IMAGENAME eq explorer.exe" 2>NUL | find /I /N "explorer.exe">NUL
if "%ERRORLEVEL%"=="0" goto end
shutdown -r -t 0
:end

或者拿业务进程判断
比如业务进程是gs.exe
@echo off
tasklist /FI "IMAGENAME eq gs.exe" 2>NUL | find /I /N "gs.exe">NUL
if "%ERRORLEVEL%"=="0" goto end
shutdown -r -t 0
:end


比如业务进程是MaxRenderClient.exe
@echo off
tasklist /FI "IMAGENAME eq MaxRenderClient.exe" 2>NUL | find /I /N "MaxRenderClient.exe">NUL
if "%ERRORLEVEL%"=="0" goto end
shutdown -r -t 0
:end

长期:继续尝试复现收集日志提供微软分析

目前查到跟特定业务环境偶发性BrokerInfrastructure服务异常有关,BrokerInfrastructure 对应C:Windowssystem32svchost.exe -k DcomLaunch -p

而路径是C:Windowssystem32svchost.exe -k DcomLaunch -p的服务有BrokerInfrastructure、DcomLaunch、DeviceInstall、LSM、PlugPlay、Power、SystemEventsBroker七个,其中BrokerInfrastructure跟LSM(Local Session Manager)的依赖项也一样,并且explorer异常的问题场景跟BrokerInfrastructure服务和LSM(Local Session Manager)服务密切相关。

初步结论:是BrokerInfrastructure影响了LSM继而导致explorer异常,但什么影响BrokerInfrastructure异常,不清楚。

0 人点赞