一、禁止安装"海豚湾"软件
我要解决的问题
机器上有一个 E:\Windows\Desktop\海豚湾\安装程序.exe,是个 NSIS(Nullsoft)自解压安装包——外壳先跑起来,再解压出内部程序,内部进程名叫 Sw.eXe。我的目标是彻底拦住它。
我踩过的坑
我一开始写了个 BAT 脚本,打算用 SRP(软件限制策略)的路径规则 + 哈希规则 + 禁用 MSI 来封杀。结果脚本一闪而过,啥也没干成。
排查下来,问题一大堆:
- SRP 路径规则不支持用户变量。我写了
%USERPROFILE%,微软根本不认这个,得老老实实枚举C:\Users\*下每个真实目录。 - BAT 提权检测行写错了。重定向目标误写成了
cacls.exe自己,脚本直接提前退出。 - 哈希格式对不上。我存的是 MD5(16 字节),文件实际是 SHA256(32 字节)。SRP 哈希字段必须用 Binary 类型写进去。
- 最致命的:Enforce 没开。SRP 的强制执行值一直没设成
1,意味着所有规则只是"建议",系统根本不执行。最后我用 Python 直接写注册表,把Enforce=1钉死。 - NSIS 的套路。SRP 哈希只匹配外层壳,内层解压出来的
Sw.eXe哈希完全不一样——所以哈希规则对 NSIS 自解压包形同虚设。
最终我用的方案
放弃跟 SRP 死磕,改用任务计划程序按进程名硬杀:
taskkill /F /IM Sw.eXe /T建一个计划任务,触发器设成"启动计算机"+"每分钟重复(无限期)"。NSIS 解压出 Sw.eXe 的瞬间就被杀掉,没有逃跑窗口。
我的结论
- SRP 路径/哈希规则对 NSIS 自解压包不靠谱
- 按进程名杀是最简单粗暴也最有效的兜底手段
二、远程机 WiFi 故障排查
现象
重装 WiFi 驱动后能连网,但一重启就 WiFi 被禁用且手动启用不了。net start wlansvc 倒是能临时救回来。
我的排查过程
我一步一步往下挖:
| 步骤 | 我执行的命令 | 看到了什么 |
|---|---|---|
| 先排除组策略 | gpresult /h | 工作组机器,SRP 默认"不受限",没有禁用网络的策略 → 跟 SRP 无关 |
| 查 wlansvc 状态 | sc.exe query wlansvc | STOPPED,退出码 1068(依赖失败) |
| 看 wlansvc 依赖 | (Get-Service wlansvc).ServicesDependedOn | wcmsvc 是 Stopped |
| 查 wcmsvc 状态 | sc.exe query wcmsvc | 也 STOPPED,退出码 1068 |
| 看 wcmsvc 依赖 | (Get-Service wcmsvc).ServicesDependedOn | RpcSs / NSI / WinHttpAutoProxySvc 全部 Running |
| 手动拉起 | net start wcmsvc → net start wlansvc | 都成功 → 说明是启动时序问题 |
| 查服务组 | reg query ...\wcmsvc /v Group | Group = TDI(传输驱动接口层) |
| 试延迟启动 | 设 DelayedAutoStart=1 | 重启照样失败,TDI 时序改不了 |
根因
wcmsvc(WLAN 连接管理器)属于 TDI 组。开机时 TDI 网络栈还没就绪,它就急着启动,结果报 1068 依赖失败,连锁把 wlansvc 也拖死了。手动启动时 TDI 已经好了,所以能成功。
我最终的解决方案
用计划任务绕开 Windows 底层时序:
- 打开
taskschd.msc,右侧点"创建基本任务" - 名称填
StartWiFiAfterBoot - 触发器选 计算机启动时
- 操作选启动程序 →
cmd.exe - 参数填
/c net start wcmsvc && net start wlansvc - 双击任务 → 常规 → 勾上 "使用最高权限运行" 和 "不管用户是否登录都要运行"
- 条件 → 取消"只有在计算机使用交流电源时才启动"
- 确定后重启验证,开机大约 2 分钟后 WiFi 自动恢复
三、Armoury Crate 干扰排查
我发现了什么
翻事件日志看到几个线索:
- 开机后
ArmouryCrate.UserSessionHelper.exe会重置覆盖电源策略方案 - 事件 ID 100(警告):Armoury Crate 延迟系统关闭 3078ms——这直接打乱了开机服务启动顺序
- ASUS 一共 14 个服务,最可疑的是
ASUSOptimization(开机重写系统策略)和ArmouryCrateService - 注册表里
WiFiRoaming=0x0,说明没有 GameFirst 之类的网络优先级模块在直接捣乱
我的判断
ASUS 没有专门的网络模块,但 ASUSOptimization 可能间接把服务启动时序搞乱了。
我设计的对照实验
- 禁用
ASUSOptimization+ArmouryCrateService - 同时禁用 WiFi 计划任务
重启看 WiFi 能不能自动恢复
- 能恢复 → 确认是 ASUS 干扰,永久禁用这两个服务
- 还是不行 → 排除 ASUS,根因就是 Windows TDI 时序问题,继续用计划任务兜底
四、新需求:用证书规则禁止安装 WeGame
目标
文件是 E:\Windows\Desktop\WeGameMiniLoader.std.7.06.27.1446.exe,我想用 SRP 的证书规则来封——这样同一发布者所有版本、所有路径、改了名也全拦得住。
我准备的手动教程
第一步:先验证签名(只读操作,不会执行 exe):
Get-AuthenticodeSignature "E:\Windows\Desktop\WeGameMiniLoader.std.7.06.27.1446.exe" | Format-List Status, SignerCertificateStatus=Valid才能做证书规则- 如果显示
NotSigned,这条路就走不通
第二步:建证书规则:
- 运行
gpedit.msc - 计算机配置 → Windows 设置 → 安全设置 → 软件限制策略 → 其他规则
- 右键 → 新建证书规则 → 安全级别选"不允许的"
- 点"浏览"直接选那个 exe,系统会自动从文件提取证书,不用手动导出 .cer
第三步:检查关键开关
软件限制策略 → 右键"强制" → 绝不能勾选"忽略证书规则",否则所有证书规则全部失效。
第四步:刷新策略
gpupdate /force备用方案:如果确实需要 .cer 文件,右键 exe → 属性 → 数字签名 → 详细信息 → 查看证书 → 复制到文件 → 选 DER 编码 .CER。
等用户反馈
- 签名状态是否
Valid - 发布者名称(大概率是 "Tencent Technology ...")
下一步待办
- [ ] 用户反馈 WeGame 签名状态 → 建证书规则
- [ ] 用户验证 Armoury Crate 对照实验结论
- [ ] 确认 WiFi 计划任务长期稳定运行
觉得内容不错?我要