Agent Skills
返回列表
ArcGIS Pro ATBX 工具箱加密

ArcGIS Pro ATBX 工具箱加密

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_0d6e251a/arcgis-pro-atbx-encryption-skill。

技能介绍

要解决什么问题

发布 ArcGIS Pro 自定义工具箱时,.atbx 里内嵌的 Script Tool 往往带着明文 tool.script.execute.py。只要别人解压或浏览工具箱结构,源码就会被直接看到。GUI 里逐个点加密既慢,又容易漏掉 validate 脚本或搞错密码策略。本技能把流程锁在 .atbx 专用管线:不引导你去改 .pyt、不默认走 arcpy.EncryptPYT,也不靠「点界面点到手酸」完成批量发布。

技能如何工作

在 Windows + ArcGIS Pro 自带 Python 环境下,通过捆绑脚本调用 AfCore.dll 原生加密入口,批量处理内嵌脚本:

  • scripts/batch_encrypt_atbx.py:对 tool.script.execute.py 加密,可按需包含 tool.script.validate.py
  • scripts/inspect_atbx.py:查看单个 .atbx 或对比明文/加密归档结构
  • scripts/validate_atbx_runtime.py:用 ArcPy 导入加密工具箱、列出工具,可选冒烟执行
  • scripts/doctor_atbx_environment.py:检查 Python、arcpy、AfCore 导出是否就绪

典型顺序是:确认输入全是 .atbx(或含 .atbx 的文件夹)→ 环境不明先跑 doctor → 结构不明先 inspect → 按你的口令策略加密 → 再 inspect + ArcPy 验证 → 汇报输出路径、口令来源方式、跳过项与残留风险。

口令规则写得很硬:你明确给了口令就用你的;没给则用 --generate-password --no-password-prompt 在内存里生成高熵口令,不打印、不存储、输出里也不可恢复——这是源码保护发布,不是密钥管理系统。

适用边界与注意点

  • 工具若只 外链 .py、没有内嵌 tool.script.execute.py,需要先走发布流程把脚本嵌进 .atbx,否则本技能无法替你「凭空加密」。
  • 加密后 pw 必须留在 tool.content,不要手删或手改;ArcGIS Pro 靠它识别加密载荷。
  • 已有 pw 的工具箱默认跳过;要重加密需显式 --force。覆盖发布物要用户明确接受才用 --overwrite;原地替换建议 --in-place 并保留备份。
  • 若报告里 password_source 为 generated:undisclosed,不要声称能找回口令——工具仍可运行,但带口令的源码查看/编辑路径被刻意关闭。
  • 成功标准包括:加密脚本出现 ArcGIS 识别的密文头(如 00022e68)、ArcPy 能导入、代表性工具在安全参数下可跑,且发布包中排除未加密源码与备份。

使用场景

  • 对外发布含 Script Tool 的自定义 `.atbx` 前,要在 Windows 上批量加密内嵌 `execute` 脚本且不转成 `.pyt`。
  • 交付文件夹里有多份工具箱,需按统一口令或自动生成不可披露口令,批量产出加密副本并排除明文源码。
  • 加密后要做结构对比与 ArcPy 导入,确认工具列表可见、代表性工具在安全参数下仍能冒烟执行。
  • 首次在本机跑加密流水线前,用 doctor 检查 ArcGIS Pro Python、`arcpy` 与 AfCore.dll 导出是否齐全。

适合人员

  • 维护 ArcGIS Pro 地理处理工具箱、向甲方或公众分发前必须隐藏内嵌 Python 逻辑的 GIS 开发工程师
  • 负责局内工具「发布包」目录,要整夹加密多份 `.atbx`、保留备份并写清跳过/已加密项的 GIS 运维或数据管理人员
  • 在 Windows 发布流水线上集成 `.atbx` 加密,需区分用户指定口令与 `generated:undisclosed` 策略的 DevOps 或 GIS 平台工程师
  • 加密后要做验收的同事:需要用 inspect 与 `validate_atbx_runtime` 对照成功标准(`pw`、密文头、ArcPy 可导入)的 QA 或技术支持