win-lnk-diagnose-fix

SKILL运维和基础设施
运维和基础设施 未标注权限 许可证不明确
安装这个技能

诊断并修复 Windows 快捷方式(.lnk)双击无法启动或报错的问题。当用户反馈"某 .lnk 无法启动"、"快捷方式打不开"、"双击没反应"、"指定的路径找不到"时使用。覆盖用 Python 解析(绕过被禁用的 WScript.Shell COM)、定位目标程序/启动参数/工作目录、判断根因(目标文件缺失、命令不在 PATH、参数路径错误),以及两种修复手法(用 .NET 加用户 PATH 绕过被禁的 reg.exe;或把 .lnk 参数改成绝对路径以绕开 explorer 环境刷新依赖)。

一句话选型结论

按资料字段整理

win-lnk-diagnose-fix是运维和基础设施类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类运维和基础设施 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_5df8667a/win-lnk-diagnose-fix
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

运维和基础设施
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_5df8667a仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791621950
正文体量5.2 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查服务与日志

按现象定位服务状态与日志线索。

写部署与巡检脚本

把重复的部署、巡检写成脚本。

故障排查

按步骤排查网络、依赖与配置。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在运维和基础设施场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
win-lnk-diagnose-fix当前 未标注权限 未标注 未标注 未标注 有
Azure 部署 调用外部服务 GitHub 仓库 664.2 万 Codex、Claude、Cursor 有
Azure diagnostics 问题管理 调用外部服务 GitHub 仓库 657.6 万 Codex、Claude、Cursor 有
Azure aigateway 部署 调用外部服务 GitHub 仓库 655.3 万 Codex、Claude、Cursor 有
Azure AI 搜索 调用外部服务 GitHub 仓库 651.4 万 Codex、Claude、Cursor 有
Azure Cloud migrate 部署 调用外部服务 GitHub 仓库 650.7 万 Codex、Claude、Cursor 有

SKILL.md 全文

5.2 KB
模型实际读到的说明书原文,来自技能仓库

Windows .lnk 启动失败诊断与修复

适用场景

用户报告某个 .lnk 快捷方式无法启动、双击无反应、报"不是内部或外部命令"、"系统找不到指定的路径"等。常见于 cmd 包装的命令(如 cmd.exe /k codex)、被卸载软件残留的快捷方式、或安装目录未加入 PATH 的工具。

本机安全约束(关键,先读)

当前环境禁用了以下常规手段,必须走替代路径:
- 禁用的:WScript.Shell / Shell.Application COM 对象、reg.exe、rundll32.exe、PowerShell Add-Type、Bash 直接调用 powershell.exe。
- 可用的替代:
- 解析/改写 .lnk 字节 → 用 Python 直接读文件(struct + 正则提取 UTF-16LE/ASCII 字符串)。
- 读/写系统 PATH → 用 PowerShell 的 .NET API:[Environment]::GetEnvironmentVariable("Path","User") / SetEnvironmentVariable("Path", $v, "User")(不走 reg.exe)。
- 广播 WM_SETTINGCHANGE 让 explorer 刷新 → 不可用(rundll32/Add-Type 均被禁)。因此"加 PATH"对当前已运行的 explorer 会话不立即生效,必须改用"改 .lnk 绝对路径"才能双击立即生效。

诊断流程

  1. 定位 .lnk 文件:确认路径存在(可能在 C:\Users\<user>\Desktop、C:\Users\Public\Desktop、D 盘重定向桌面等)。
  2. 解析 .lnk(Python,见 scripts/lnk_diag.py 的 parse_lnk):
    - 读二进制,提取 UTF-16LE 与 ASCII 可读字符串,快速定位 target / 启动参数 / 工作目录 / 图标。
    - 精确解析:LinkFlags 在偏移 0x14(4 字节);IDList 之后是 StringData。用 walk ItemID 找到 TerminalID(size=0)确定 IDList 结束,其后即 StringData。
    - 坑:本机常见 .lnk 的 IsUnicode 标志(LinkFlags 的 0x200 位)未设置,但 StringData 实际是 UTF-16LE 编码。按 ANSI 读会错位。解析时按 Unicode 读字段即可(保持原文件非标准状态,Windows 仍可正常解析)。
    - 各 StringData 字段顺序由 flag 决定:Name(0x04) → RelativePath(0x08) → WorkingDir(0x10) → Arguments(0x20) → IconLocation(0x40)。每个字段 = 2 字节字符数前缀 + 内容。
  3. 判断根因:
    - target 是 cmd.exe 且参数形如 /k <cmd>:检查 <cmd> 是否在 PATH。当前 bash 会话的 PATH 是 WorkBuddy 隔离环境,不能代表系统真实 PATH,必须读 [Environment]::GetEnvironmentVariable("Path","User")+"Machine") 并在常见安装目录(AppData\Local\、AppData\Roaming\npm、Program Files)深度搜索该可执行文件。
    - target 是普通 exe:检查该 exe 路径是否存在。
    - 工作目录是否存在。

修复手法

二选一,优先"改绝对路径"(立即生效、不依赖 explorer 刷新)。

A. 改 .lnk 参数为绝对路径(推荐,立即生效)

  1. 用 Python 在 .lnk 文件中 find 各已知字符串的 UTF-16LE 偏移,校验其前的 2 字节长度前缀 = 字符数(匹配才动手,不匹配则中止,绝不盲改)。
  2. 把启动参数替换成目标可执行文件的绝对路径(例如 cmd /k "C:\...\codex.cmd",codex.cmd 是转发器)。
  3. 重建 StringData 段(Name + WorkingDir + 新Arguments + Icon),保持 UTF-16LE,ExtraData(图标追踪块等,特征签名 0xA0000003)整体后移,结构不变。
  4. 先备份原文件为 <name>.lnk.bak。
  5. 校验:新文件 size 合理、CLSID(data[4:20] == 01 14 02 00 ... 46)、四字段齐全、ExtraData 签名仍在。

B. 加用户 PATH(持久,但当前会话需刷新才生效)

  • 用 PowerShell:读当前 User PATH,若不含目标 bin 目录则追加,SetEnvironmentVariable("Path", $new, "User")。
  • 同时在 bin 目录放一个 <tool>.cmd 转发器(@"绝对路径\tool.exe" %*),使版本更新只改转发器一行。
  • 告知用户:双击 .lnk 前需重启文件资源管理器 / 注销重登(当前环境无法自动广播刷新)。

验证

  • 直接运行转发器/绝对路径 exe(--version 或无害子命令)确认可执行。
  • 解析校验改写后的 .lnk 结构完整(见脚本 verify_lnk 逻辑)。

常见陷阱

  • 不要盲信"where <cmd>"在隔离 bash 里的空输出——它只代表当前会话 PATH,不代表系统 PATH。
  • 改 .lnk 务必先校验长度前缀,并保留 ExtraData,否则图标/追踪数据损坏。
  • CodexPlusPlus 这类 GUI 增强启动器不提供命令行,无法修复 /k &lt;cmd&gt; 类 .lnk,需向用户说明。

常见问题

5 问
答案由本站依据条目字段整理
win-lnk-diagnose-fix怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_5df8667a/win-lnk-diagnose-fix。安装方式为未标注。装完刷新技能列表或重开客户端。

win-lnk-diagnose-fix支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

win-lnk-diagnose-fix权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

win-lnk-diagnose-fix收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

win-lnk-diagnose-fix用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。