加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.023zz.com.cn/)- 高性能计算、物联设备、数据可视化、操作系统、基础存储!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Windows多媒体站点搭建:18年经验谈权限配置一步到位

发布时间:2026-10-15 08:15:07 所属栏目:Windows 来源:DaWei
导读:  凌晨三点二十,我盯着机房监控屏右下角那个小红点——不是告警灯,是去年双十一贴上去的胶布,遮着一块坏像素,现在它在闪,像心跳停了半拍又自己接上了。  我原以为就一权限问题:IIS Application Pool Identity 用的是 N

  凌晨三点二十,我盯着机房监控屏右下角那个小红点——不是告警灯,是去年双十一贴上去的胶布,遮着一块坏像素,现在它在闪,像心跳停了半拍又自己接上了。


  我原以为就一权限问题:IIS Application Pool Identity 用的是 Network Service,跑个 FFmpeg 转码脚本连临时目录都写不进去。结果改完 identity、加了 Users 组、还手动给 D:\\media\\transcode 赋了 Full Control,服务起来三分钟,又挂。日志里只有一行:0x80070005,访问被拒绝。可文件夹属性里明明显示 Administrators 和 IIS_IUSRS 都勾着允许——我连右键菜单都点了三遍“高级”,进去看继承是不是被禁了,又退出来再点“编辑”,把“替换子容器和对象的所有者”打钩,再点确定,再等,再刷新……


  窗外在下雨,雨点打在机房北侧那扇漏风的旧窗上,嗒、嗒、嗒,节奏比告警声还准。值班室桌上泡面桶还在,葱花浮在汤面上,凉透了。客服小李微信弹进来:“王哥,客户说视频上传进度条卡在 99%,点重试直接 500。”我没回。老板在运维大群里发了个“?”,后面跟了个“急”,再后面是三个省略号。我截图发过去,附了句:“IIS 日志里全是 500.19,配置错误。”他秒回:“不是说你十年前就在 Windows 上搭流媒体?”


  我懒得回。十年前?那是 XP+IIS5,装个 RealServer 都得调 registry。现在这堆东西:Windows Server 2022、IIS 10、.NET 6 Runtime、Media Foundation、DirectShow 插件、还有客户非要用的 WebAssembly 解码器预加载模块……谁记得清哪一层在查哪个 ACL?更别说那个叫 “TrustedInstaller” 的幽灵用户——你右键属性根本看不到它,但 Event Viewer 里明明白白写着:“操作被 TrustedInstaller 拒绝”。我翻了两小时 KB 文档,最后是运维老张甩来一句:“试试把 AppPool Identity 改成 LocalSystem?”我照做,好了。两分钟后,磁盘报警跳出来:D:\\media\\archive 占了 97%。原来备份脚本写的路径没加时间戳,每天全量往一个 .zip 里塞,七天后变一个 82GB 的巨婴。备份没跑?不,它跑了。它天天跑,跑得比我还勤。


  上个月搬家,我亲手把旧服务器抬进新机柜,背疼了半个月。那天雨也这么大,物流司机骂骂咧咧扛着纸箱进电梯,箱子上印着“锐捷 RG-ES208G”,结果拆开一看是二手 Cisco 3750,序列号被酒精擦过三次,隐约还能看出 R-E-A-L-T-E-C-H。我就笑。笑完才发现新机柜底座螺丝松了,晃得整个机架共振,嗡嗡的,像老式冰箱压缩机快死了。现在这嗡嗡声,混着窗外雨声,听着特别耳熟。


文章配图,仅供参考

  DNS 解析没出问题,证书没过期,带宽也没跑满——监控图上绿得刺眼。可客户上传的 MP4 里有 HDR 元数据,FFmpeg 一碰到就崩,崩完进程不退出,只占内存不释放,十来个僵尸转码任务压住 CPU,而 IIS 竟然还傻乎乎地接请求,直到 w3wp.exe 吃光所有分页文件,整个应用池跪得悄无声息。没人知道。连我们自己的测试账号传个 4K 视频,都只看到“上传失败”,根本不知道背后是个静默内存溢出。我查 Process Explorer 的时候,发现有个 svchost 进程居然挂着 mediafoundation.dll,PID 是 1208——这玩意儿早该归到 AudioSrv 服务下面,现在硬是挂在 RPCSS 上,鬼知道谁动过注册表。这个我到现在也没想明白。


  小张——就是那个总穿灰卫衣、耳机线永远缠在手指上的实习生——蹲在机柜前用万用表测 PDU 接口电压,念叨:“王工,这电流纹波超标了,零线好像虚接。”我摆摆手。管它呢。反正现在所有请求都打到备用 Nginx 反向代理上了,只是 HLS 切片延迟从 1.2 秒涨到 4.7 秒,客户说“画质糊了”,其实只是 GOP 失步。糊就糊吧。糊得不致命,总比黑屏强。去年某银行上线人脸识别系统,也是类似逻辑,前端 JS 用 base64 传活体视频帧,每帧 8MB,Nginx 默认 client_max_body_size 是 1MB,报错提示居然是“SSL handshake timeout”——他们花了三天查证书链,第四天才看见 error.log 里那一行被滚动刷掉的 413。真逗。


  中午十二点四十七分,我在工位抽了根烟,看着烟头明明灭灭。烟灰缸底下压着一张纸,上面是我手写的三条路径:D:\\media\\temp → D:\\media\\work → D:\\media\
eady。中间那段箭头,画歪了两次,最后拿签字笔描粗。这图我画过七次,每次环境不一样,每次都要重画。可每次画完,都会漏掉一样东西:Logon as a service 权限。ServiceAccount 用户必须有这个权利,不然 Windows 就不肯让它起 AVCodec 加载器。但组策略里默认不显,得去 secpol.msc 里找“本地策略→用户权利分配→作为服务登录”。我漏过三次。第三次,还是小张提醒我的。她说:“王工,你看 event id 7040?服务启动失败,错误代码 1053。”我点开,看见那一行:“The service did not respond to the start or control request in a timely fashion.” 我愣了五秒。然后笑了一声,挺难听。


  优胜劣汰?对。活下来的,不是最懂 SID 映射的人,是那个敢把 AppPool Identity 改成 LocalSystem、敢让备份脚本把 .zip 文件名加 $env:COMPUTERNAME + Get-Date -f 'yyyyMMdd'、敢在 prod 机上手动删掉 %windir%\\system32\\LogFiles\\W3SVC1 下三个月前的日志的人。规则是死的,ACL 是僵的,只有人手抖的时候,权限才真正流动起来。所以别跟我谈什么最小权限原则。最小?最小就是没权限——服务器裸奔十分钟,比你纠结三小时 DACL 还安全。


  明天先把告警阈值调了。D 盘 85% 就响,不是 95%。还有,把 svchost 那个 mediafoundation.dll 的加载项,在 regedit 里找出来,删掉。删之前先导出,存桌面,文件名就叫“别删_202504_backup.reg”。我信不过自己。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!