首页 / 资讯中心 / 文章详情

考试客户端安装部署指南:环境体检、静默安装与断网续考

考试客户端安装部署指南:环境体检、静默安装与断网续考 ★ FEATURED ARTICLE
每年集中考试那几周机房和自习室里最怕听到的一句话就是我这个客户端装不上。明明前一天还好好的机器第二天双击图标就卡在启动画面或者安装进度条走到 98% 突然回滚弹一个连错误码都没有的提示框。这类问题单个出现只是麻烦几十台机器同时出现就是事故。所以考试客户端安装这件事看着是点几下下一步的体力活实际上是一套需要提前规划、逐项验证、留有兜底的工程流程。考试客户端的本质是把浏览器里做不稳的事情搬到本地来做锁定全屏、接管摄像头、屏蔽切换窗口、断网时把答案先落在本地磁盘、考试结束再回传。它解决的是在线考试中公平性和连续性两个最要命的问题——既要防止考生在考试过程中打开别的窗口也要保证网络抖一下不至于让两个小时的努力白费。这篇内容适合三类人看负责机房统一部署的技术人员、需要独立完成安装的考生、以及要给团队做考前保障方案的组织者。下面我按实际动手的顺序把选型逻辑、环境体检、安装实操、故障排查和考中兜底一次讲透都是能直接照着做的内容。1. 为什么考试要用独立客户端而不是浏览器1.1 浏览器方案在考试场景下的三个硬伤很多人第一反应是做个网页不就行了何必让用户装软件在普通业务系统里这个判断完全成立但考试场景有三个绕不过去的坎。第一个是窗口焦点浏览器标签页可以被随意切换网页脚本能监听到切换事件却没法阻止考生切过去看资料更没法阻止 AltTab 之外的多屏延伸、虚拟机嵌套、第二台设备投屏这些更隐蔽的操作。第二个是设备权限浏览器调摄像头需要用户点一次授权考生完全可以在开考后把摄像头权限关掉或者用虚拟摄像头顶替网页端拿不到真实的设备指纹。第三个是本地持久化浏览器本地存储在清理缓存、异常退出、进程被结束后并不可靠而考试恰恰最需要断网也能继续答题这种能力。独立客户端把这三件事都变成可控的。它可以强制全屏并置顶把任务栏、开始菜单、快捷键统统压住它可以在启动时枚举摄像头设备、读取设备 ID、检测是否为虚拟设备并在考试过程中按固定间隔抓拍它可以把答题数据按题目粒度写入本地加密文件网络恢复后做增量同步。这些能力不是更高级而是权限层级不一样——客户端跑在操作系统上网页跑在浏览器沙箱里能做的事情天然不在一个量级。我在实际部署里遇到过一次典型情况某场考试用网页端开考二十分钟后有考生反馈点交卷没反应排查发现是他中途把浏览器缩放调到了 150%交卷按钮被挤出了可视区域而页面又没有做响应式兜底。换成客户端后界面是固定布局、固定分辨率适配这类问题直接消失。所以说客户端不是技术炫耀是把不可控因素收拢到可控范围里。1.2 考试客户端到底需要哪些系统级能力把客户端要干的事拆开看无非五类。界面接管全屏锁定、禁用右键和快捷键、屏蔽多显示器扩展、检测虚拟机和远程控制类进程。设备接管摄像头预览与抓拍、麦克风电平检测、屏幕录制用于事后回溯、扬声器回路自检。数据落盘答题记录本地加密缓存、断电续考、异常退出后的恢复。环境校验系统时间与标准时间偏差、磁盘剩余空间、网络连通性与带宽、客户端版本与考试批次是否匹配。通信保障断线自动重连、心跳保活、答案增量上传、上传失败重试队列。这五类能力决定了安装阶段必须检查哪些东西。比如环境校验里的系统时间很多安装失败案例根本不是安装包的问题而是机器时间比标准时间慢了五分钟客户端启动后校验签名证书直接判定证书未生效报了个网络异常的误导性提示。理解了客户端要干什么你在体检阶段就知道该看哪些项而不是照着别人给的清单机械打勾。1.3 部署策略怎么选单机装、镜像下发还是静默批量同一个安装包在不同规模下玩法完全不同。三五台机器手动点安装最省事装完当场跑一遍自检。几十台的机房建议先做一台样板机把系统更新、驱动、运行库、客户端全部装好并验证通过再用磁盘镜像整体下发下发后只需要改机器名和补一次客户端激活。上百台且有域环境的走组策略开机脚本或者批量运维工具做静默安装安装完由脚本自动跑一次命令行自检把结果汇总成表。这里有个取舍要讲清楚镜像下发看起来最快但客户端的设备绑定信息比如设备指纹、摄像头 ID会被一起复制过去导致几十台机器上报同一个指纹监考端看到的就是同一台设备参加了几十场考试。所以镜像方案必须做一件事——在下发后的首次开机脚本里清理客户端的本地配置目录让它重新生成设备标识。这个坑我在早期项目里踩过一次当时一百多台机器全部报同一个设备号排查了大半天才定位到镜像残留。2. 安装前的环境体检把这些项查完再动手2.1 硬件门槛与系统版本的真实下限官方文档写的最低配置通常是能跑起来的下限不是能跑稳的下限。以常见的双机位考试为例正面摄像头抓拍加侧面摄像头监考再加屏幕录制一台机器同时要处理两路视频流和一路屏幕流。我实测下来比较稳的配置是四核处理器、8GB 内存、可用磁盘空间 10GB 以上、集成显卡即可但驱动要是近两年的版本。4GB 内存的机器不是不能装而是在录制开启后容易出现画面卡顿、抓拍丢帧考试中途客户端判定摄像头异常直接弹警告反而影响考生心态。系统版本上Windows 10 64 位是目前兼容性最好的选择Windows 11 要注意两个点一是部分老版本客户端对新系统的摄像头隐私开关适配不完整需要在设置-隐私和安全性-摄像头里确认允许桌面应用访问摄像头处于开启状态二是 Windows 11 的默认电源策略会在空闲时降低 USB 供电外接摄像头可能被断电需要在电源选项里把USB 选择性暂停关掉。这两个设置不检查安装一切正常考试当天掉链子。还要看一眼磁盘。不是看总容量是看客户端要写入的那个分区。答题缓存、屏幕录制临时文件都落在安装目录或者用户目录下如果系统盘只剩 2GB录制十分钟就写满了客户端会静默停止录制而不报错事后回溯的时候才发现没录上。建议给考试专用分区留 20GB 以上并且在安装时把缓存目录显式指到这个分区。2.2 摄像头、麦克风与音频回路的自检方法摄像头这块优先选免驱的 UVC 设备插上就能在系统相机应用里出画面不需要装厂商驱动。需要装专有驱动的摄像头尽量避开因为驱动安装会引入额外的权限和重启要求批量部署时非常麻烦。分辨率 720P 起步1080P 更稳帧率 30fps 就够不要盲目追求高帧率——双摄像头同时跑高帧率会抢 USB 带宽。USB 带宽这个问题值得单独说。一台机器接两个摄像头如果两个都插在同一个 USB 控制器下的相邻接口尤其是前面板接口通常共用一条内部总线很可能出现只能识别一个或者两个都识别但其中一个频繁掉线。正确的做法是把两个摄像头分别插在机箱后面板的不同控制器接口上或者一个走前面板一个走后面板。判断方法很简单设备管理器里按连接查看设备能看到它们挂在哪个控制器下。麦克风要做回路测试不是插上就行。有些耳麦的麦克风默认被系统静音或者输入音量被拉到 0考生说话监考端听不到考后复核也听不到。安装完成后用系统录音机录五秒回放能清楚听到自己声音才算通过。扬声器同样要测考试开始和结束的提示音如果听不到考生可能错过关键提示。2.3 网络带宽与端口放行清单单人考试的带宽需求并不高纯答题和心跳上行 128Kbps 就够用但加上一路抓拍图片和一路监考视频上行建议给到 1Mbps、下行 2Mbps。如果是整间机房几十人同时考别按单机乘以人数去算总带宽因为抓拍是错峰的实际峰值大约是理论值的六成。真正容易被忽略的是机房的出口设备——很多机房的防火墙默认只放行 80 和 443客户端的视频流如果走了自定义端口就会表现为能登录、能答题、但监考画面黑屏。安装前必须拿到一份完整的连通性清单包括考试服务域名、文件上传域名、视频推流域名及其端口。然后在一台样机上用命令行逐个验证不要只验证主域名。下面这条命令可以快速确认域名解析和目标端口是否可达比在浏览器里点开首页要有用得多。# 逐个验证服务端点的连通性 $targets ( { Host exam.example-domain.test; Port 443 }, { Host upload.example-domain.test; Port 443 }, { Host media.example-domain.test; Port 1935 } ) foreach ($t in $targets) { $result Test-NetConnection -ComputerName $t.Host -Port $t.Port -WarningAction SilentlyContinue {0}:{1} {2} -f $t.Host, $t.Port, $result.TcpTestSucceeded }注意清单里的域名必须用实际考试批次对应的地址不同批次可能落在不同的服务集群上。用上一场的旧清单去验证很容易得出全部通的错误结论。2.4 系统权限、安全软件白名单与时间同步安装必须用管理员权限这一点几乎所有安装包都会提示但有一类隐蔽情况用普通账户双击安装包UAC 弹窗被考生点了否安装程序静默退出没有任何提示。为了避免这种以为装好了其实没装建议统一由管理人员用管理员账户完成安装安装后再用普通账户登录验证一次能否正常启动。安全软件白名单是安装阶段最高频的故障源。客户端为了实现全屏锁定和设备接管会加载驱动、注入进程、修改注册表这些行为在安全软件看来和恶意程序高度相似。必须在安装前把安装目录、主进程、驱动文件加入信任列表而不是等被拦截了再去加。加白之后还要做一次验证临时关闭安全软件的实时防护装一遍再开启实时防护运行一遍两次都能正常启动才算真的通过。系统时间同步也要在体检阶段解决。客户端会用本地时间和服务端时间做比对偏差超过阈值通常 30 秒就拒绝进入考试。手动改时间不靠谱正确做法是指定一个内网时间源并强制同步然后在安装完成后确认同步状态。:: 查看当前时间源与同步状态 w32tm /query /status w32tm /query /source :: 立即强制同步一次 w32tm /resync /force3. 安装实操全流程从校验到验收3.1 安装包获取与完整性校验安装包只从官方渠道获取不要用别人转发的版本。这不是谨慎过度而是实际发生过的事有人用聊天工具传输安装包文件在传输中被截断大小看起来差不多双击能启动装到一半报解压失败换成重新下载就好了。校验方法很简单拿到官方公布的哈希值本地算一遍对比。Get-FileHash -Path .\ExamClient_Setup.exe -Algorithm SHA256 | Format-List哈希一致再往下走。如果不一致先排除下载不完整再检查是不是安全软件在下载完成后做了隔离——有些安全软件会把文件移到隔离区但保留一个占位文件大小对得上内容已经不对了。安装包建议放在本地磁盘再运行不要直接双击网络共享路径里的安装程序。共享路径安装有两个问题一是安装过程需要多次读取源文件网络抖动会导致安装中断二是部分安装器会把源路径写进卸载信息里以后共享不可达时卸载会失败。3.2 图形化安装的每一步该看什么双击安装包后第一步是选择安装路径。这里有个硬性要求路径不要包含中文、空格和特殊符号。原因不是安装器不支持而是客户端在运行时要调用一些底层组件部分组件对含空格的路径处理不严谨表现为安装成功但启动闪退。统一用类似C:\ExamClient这样的短路径全机房保持一致后续做批量脚本、写运维文档都方便。第二步是组件选择。通常会附带安装运行库VC 运行库、.NET 框架这些默认勾选就行不要为了干净取消勾选——客户端主程序依赖它们取消后安装能过启动会报缺少 DLL。如果机器上已经装过更高版本的运行库安装器一般会跳过不会降级覆盖。第三步是安装过程进度条走到末尾可能会有一次驱动安装确认弹出系统的驱动签名提示必须点安装。这个驱动是屏幕捕获或者设备接管用的点了不安装客户端照样能启动但全屏锁定和屏幕录制功能会失效而且不会有明显报错属于最坑的一类问题。安装完成后先别急着启动做三件事确认安装目录下主程序文件存在且版本号正确确认桌面快捷方式和开始菜单项都生成了确认系统的应用和功能列表里能看到这条记录说明卸载信息写入成功。这三项都对了才算安装动作完成后面还有配置和验收。3.3 首次启动的检测项与配置项首次启动客户端一般会进入一个环境检测页逐项检查摄像头、麦克风、扬声器、网络、时间、磁盘、显示器数量、远程控制进程。这一页是整篇内容里最值得盯的地方因为它把后面所有可能出问题的地方都提前暴露了。摄像头检测要注意看预览画面是不是真的在动。有些机器上预览是黑的但检测显示通过原因是客户端只判断了设备能否打开没判断有没有画面。判断方法是自己在镜头前挥挥手画面有变化才算真通过。麦克风检测要说话看电平条跳动别只点下一步。显示器检测会检查是否接了多个屏幕接了扩展屏的机器要提前拔掉或者切成仅第二屏幕这个设置在考试当天临时改容易手忙脚乱。配置项里最容易被忽略的是缓存目录和日志级别。缓存目录默认在安装目录下如果安装目录在系统盘建议改到数据盘。日志级别默认可能是错误级别出问题时日志里什么都没有考前保障期间建议临时调到信息级别考完再调回去这样万一出问题至少有据可查。3.4 静默安装与批量下发的脚本写法机房规模上去之后手动装不现实。不同打包工具的静默参数不一样先用错参数会得到一个什么都没发生的结果——双击没反应命令行也没输出其实是参数不被识别安装器直接退出了。常见的三套参数记一下基于 NSIS 的安装器用/S基于 Inno Setup 的用/VERYSILENT /SUPPRESSMSGBOXES /NORESTARTMSI 包用msiexec /i 包名 /qn。具体用哪套看安装包属性里的原始文件名和体积或者直接问提供方别猜。下面这段批处理是一个可以直接改改就用的部署脚本做了三件事判断是否已安装、静默安装并等待结束、安装后写一条记录便于汇总。echo off setlocal enabledelayedexpansion set INSTALLER\\deploy-server\packages\ExamClient_Setup.exe set TARGETDIRC:\ExamClient set MAINEXE%TARGETDIR%\ExamClient.exe set LOGDIRC:\ExamClientDeployLog set LOGFILE%LOGDIR%\%COMPUTERNAME%.log if not exist %LOGDIR% mkdir %LOGDIR% if exist %MAINEXE% ( echo [%date% %time%] already installed, skip %LOGFILE% goto :verify ) echo [%date% %time%] start install %LOGFILE% start /wait %INSTALLER% /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /DIR%TARGETDIR% echo [%date% %time%] installer exit code %ERRORLEVEL% %LOGFILE% :verify if exist %MAINEXE% ( echo [%date% %time%] verify OK %LOGFILE% ) else ( echo [%date% %time%] verify FAILED %LOGFILE% ) endlocal脚本跑完不等于部署完成还要验证版本号是否和本批次要求一致。版本不一致的机器在登录时会被服务端拒绝提示语通常是客户端版本过低考生看到这句话只会更慌。批量验证可以用一行 PowerShell 把所有机器的版本号拉出来对照$machines Get-Content .\machines.txt foreach ($m in $machines) { $v Invoke-Command -ComputerName $m -ScriptBlock { $p C:\ExamClient\ExamClient.exe if (Test-Path $p) { (Get-Item $p).VersionInfo.FileVersion } else { NOT_INSTALLED } } -ErrorAction SilentlyContinue {0}t{1} -f $m, $v }3.5 安装完成后的验收清单装完就散是最危险的做法。我的习惯是每台机器过一遍五项验收全部通过才在表上打勾。第一项冷启动一次客户端确认能正常进入检测页且所有检测项为绿。第二项用考试账号做一次模拟登录确认能拉到考试列表。第三项进入模拟考试确认全屏锁定生效试着按 AltTab看能不能切出去。第四项拔掉网线等十秒再插回确认客户端有断线提示且能自动恢复。第五项正常交卷确认本地缓存文件被清理、成绩能正常提交。这五项里第四项最容易被跳过但它恰恰是最有价值的。断网续考能力只有在真正断过网之后才知道有没有生效模拟一次成本很低真出事的时候损失很大。验收项操作要点通过标准冷启动重启机器后首次打开客户端检测页全部通过无报错弹窗账号登录用测试账号登录能正常拉取考试列表全屏锁定考试中按 AltTab、Win 键无法切出客户端保持置顶断网恢复拔网线 10 秒后插回有断线提示恢复后自动重连交卷清理完成一次模拟交卷本地缓存清空服务端有记录4. 常见问题与排查技巧实录4.1 安装阶段的高频故障安装包双击没反应也没有任何提示。先看任务管理器里有没有安装器进程残留在跑有的话结束掉再试。如果没有大概率是被安全软件拦了去隔离区看看有没有对应记录。还有一种情况是安装包被系统标记为来自网络的文件右键属性里会有一个解除锁定的勾选项勾上再运行。安装到一半回滚提示写入注册表失败。九成是权限问题。确认是用管理员账户运行而不是以管理员身份运行一个普通账户——后者在部分策略下拿不到完整权限。另外检查一下是不是之前的旧版本没卸载干净注册表里残留了同名的卸载项安装器检测到冲突就回滚了。处理办法是先走一遍正常卸载卸载不掉的用官方清理工具实在不行手动删安装目录再重装。装完了桌面图标也有双击闪一下就没了。这类问题先看事件查看器的应用程序日志通常会有对应的错误记录。常见原因有三个缺少运行库表现为缺 DLL、安装路径含中文或空格表现为加载配置失败、显卡驱动过旧表现为创建渲染窗口失败。排查顺序就按这个来从成本最低的开始试。装的时候提示已有更新版本无法安装。这个好办先把旧版本卸了。但要注意卸载后要清理残留目录有些客户端卸载时只删程序不删配置重装后读到的还是旧配置版本号显示新版本但行为还是旧的很容易误判。4.2 启动与考试阶段的典型问题摄像头预览黑屏但检测通过。前面提过这是客户端只检测了设备打开状态。先换系统自带的相机应用看有没有画面有画面说明设备没问题是客户端调用方式的问题没画面就是驱动或者隐私设置的问题。Windows 11 上特别要检查允许桌面应用访问摄像头这一项很多机器默认是关的。两个摄像头只能识别一个。前面讲过 USB 带宽和控制器的问题。先换接口把两个摄像头分到不同控制器上。换了还不行就把其中一个的分辨率降下来720P 通常就能共存。再不行就上一个带独立供电的 USB 扩展卡别用无源 Hub。启动后提示网络异常请检查网络设置但浏览器能打开网页。这是最典型的误导性提示。真实原因往往是系统时间偏差过大导致证书校验失败或者机器上残留了代理设置。检查顺序先跑一遍时间同步再看系统代理设置是不是被某个工具改过最后才怀疑网络本身。考试中途客户端闪退。先看有没有转储文件客户端一般在安装目录下有个 logs 或者 dumps 目录。没有日志的情况下重点怀疑内存不足和安全软件拦截。8GB 内存的机器同时开录屏和双摄像头再加上后台的输入法、聊天工具确实可能撑不住。考前建议把非必要后台程序全关掉。全屏锁定失效能切出去。检查是不是接了扩展屏多屏环境下部分客户端的锁定只作用于主屏。另外检查输入法的悬浮窗某些输入法的悬浮候选框会浮在全屏之上虽然切不出去但视觉上像是被突破了考生活动一下就会误以为监考失效。4.3 一张能贴到墙上的速查表现象最可能原因处理动作处理耗时双击安装包无反应安全软件拦截 / 文件被锁定查隔离区属性里解除锁定2 分钟安装中途回滚权限不足 / 旧版本残留管理员安装先彻底卸载旧版10 分钟启动闪退缺运行库 / 路径含中文 / 驱动旧补运行库改短路径更新显卡驱动15 分钟摄像头黑屏隐私开关关闭 / 驱动异常系统设置里开启桌面应用访问换相机应用验证5 分钟双摄像头冲突USB 带宽或控制器共用分插不同控制器降分辨率8 分钟提示网络异常但能上网时间偏差 / 代理残留强制时间同步清代理设置5 分钟全屏锁定失效多显示器 / 输入法悬浮窗切成单屏切换输入法3 分钟断网后无法续考本地缓存目录不可写检查缓存路径权限和磁盘空间10 分钟提示这张表按现象查不要按原因查。现场处理的人往往不知道原因只知道看到了什么按现象索引能少绕很多弯。5. 考中保障与应急预案把兜底做在开考前5.1 开考前的倒计时检查该做什么我的习惯是把考前检查分成三个时间点。考前三天完成全部安装和五项验收这个阶段发现问题还有充足时间返工。考前一天做一次全流程演练用测试账号完整走一遍登录、答题、交卷重点验证断网续考和版本校验。开考前六十分钟做最后一轮机器巡检只查四样东西客户端能否正常启动、摄像头画面是否正常、系统时间是否准确、网络是否连通。这四项都是五分钟内能查完的查完就在表上打勾。开考前十分钟把所有机器统一重启一次。听起来夸张但这一步能解决掉大量莫名其妙的问题——内存泄漏、句柄占用、残留进程重启一次全清。重启后不要立刻打开客户端等系统完全稳定再启动避免开机自启项和客户端抢资源。备用机比例按不低于 5% 准备十台机器至少备一台。备用机要提前装好、验收过、放在伸手能拿到的地方而不是临时从仓库搬一台出来现装。真出问题时换机器比修机器快得多考生换一台继续考情绪影响也小。5.2 断网、断电、进程被杀怎么兜底断网是最常见的情况。客户端如果有本地缓存能力表现应该是网络断开后弹一次提示答题界面继续可用答案按题写入本地网络恢复后自动重连并增量同步。这里有个细节要注意——重连后同步的是最后一道题的答案还是所有未同步的答案不同实现不一样。考前演练时故意断网答几道题再恢复看服务端最终收到的答案是否完整这个验证比看文档可靠。断电要靠硬件兜底。机房有条件就上 UPS至少保证主机和显示器能撑十分钟够考生看到提示并做应急处理。没有 UPS 的情况下考前提醒考生养成随手保存的习惯意义不大因为客户端是自动保存的关键是确认自动保存的间隔足够短。一般客户端是每答一题存一次如果实现是每五分钟批量存一次断电损失就大了。进程被杀的情况要分开看。如果是安全软件误杀处理办法是提前加白并做验证。如果是考生自己用任务管理器结束进程客户端一般会在重启后检测到异常退出并引导恢复。这里要提醒一句不要试图用结束进程再重进来绕过考试限制正规客户端的异常退出记录会同步到监考端反而会引起不必要的关注。5.3 考后数据回收与环境还原考试结束不等于工作结束。考后要做三件事确认所有机器的答题数据都已上传成功客户端界面显示已提交不代表服务端已入库要在管理端核对提交数量清理本地缓存尤其是录制的屏幕文件这些文件体积大且涉及考生隐私不能留在机器上决定客户端是保留还是卸载如果下周还有考试就保留但要清理账号登录状态避免下一个考生登进去看到上一个人的信息。环境还原这块有个容易忽略的点考试期间为了保证稳定可能临时关掉了系统更新、关了安全软件实时防护、调高了日志级别。这些临时改动必须在考后复原否则机器会带着一个不安全的状态继续用下去。我的做法是考前把这些改动列成一张清单考后照着清单逐条改回去改完签字。最后分享一个我一直在用的小技巧给每台考试机器做一个考前快照不是系统镜像那种重量级快照就是把客户端的安装目录、配置文件、验收记录打成一个压缩包放在数据盘。万一某台机器考中出现无法快速定位的问题直接把快照解压覆盖回去三分钟恢复到一个已知可用的状态比现场排查快得多。这个做法在几十台机器的规模下特别划算成本几乎为零收益是每次事故都能把影响控制在几分钟内。
阅读完成 · 觉得有帮助?
咨询建站