夜雨聆风学习资料网

ARTICLE · 1131616

安装包总报错?一行 PowerShell 命令即可搞定!

安装包总报错?一行 PowerShell 命令即可搞定!

很高兴能在这里与你相遇。

这是本公众号的第「31」篇文章。

在这里,没有绝对专业的理论,也不保证适合每一个人,我只是想把自己实践的经验,毫无保留地分享给你。如果这些内容能给你带来一点点启发或帮助,那便是我最大的荣幸。文中相关推荐资源,可在公众号底部菜单栏中的「腾讯文档」中获取。


你是否也曾遇到过某个软件安装包,偶尔能够一遍安装成功,偶尔却又频繁出现各种报错、闪退、组件加载失败。这种“玄学”问题看似无解,但实际上还是有办法解决的。只需要以管理员身份执行下方的 PowerShell 命令(记得将路径替换成实际的安装包解压路径):

Get-ChildItem -Path "C:\temp" -Recurse | Unblock-File

这是因为通过网络下载的文件被 Windows 系统标记上一个 NTFS 文件系统的隐藏的“网络来源”标签属性,普通用户在资源管理器里根本看不到它。当 Windows 的安全子系统一旦检测到这个标签,就会对文件启动 “严格审查模式” 。

安全环节
解锁前
解锁后
SmartScreen
弹窗警告或拦截
静默放行
.NET 依赖加载
拒绝加载同目录 DLL
正常加载
PowerShell 脚本
语言、功能受限
完整权限执行
临时文件释放
二次拦截
正常运行

因此使用上方的那行命令,直接递归删除指定目录下所有文件的标记,解锁完成后即可让安装程序及其子组件被系统视为“本地文件”,从而避免了安全子系统的层层拦截,然后再正常安装软件即可。除了这个特殊的原因外,安装软件前也尽量将系统的各种环境预装好,避免诸多未知问题的发生。

相关学习资料