統一的 Python CLI,管理 Microsoft 365(世紀互聯版) 與 Adobe Creative Cloud 使用者。 本 skill 自帶完整程式碼 + 憑據,解壓即用,無需再 clone 原倉庫。
pip install -r requirements.txt # 首次:requests / python-dotenv / flask(需 Python 3.9+)
# 方式 A —— 自帶 CLI(推薦手敲):oup 會自動定位 skill 目錄、載入 .env,可從任意路徑呼叫
./oup adobe inspect zhangsan@example.com
ln -sf "$PWD/oup" /usr/local/bin/oup # 可選:軟鏈到 PATH 後全域性 `oup adobe ...`
# 方式 B —— 直接調指令碼:必須先 cd 到 skill 目錄,且用 python3(非互動 shell 裡 python 可能是 py2)
cd <本 skill 所在目錄> && python3 main.py adobe inspect zhangsan@example.com
下文示例統一用
oup;等價於python3 main.py。別用裸python——很多機器上它指向 Python 2,會直接 SyntaxError。
.env —— 已隨包含真實生產配置(CLIENT_SECRET / ADOBE_CLIENT_SECRET / SMTP_PASSWORD / DEFAULT_PASSWORD 等)。.env 已被 .gitignore 排除。把本 skill 放進任何 git 倉庫前,務必確認 .env 不會被 git add。絕不能 commit/push 到 GitHub。.env,程式碼不動(config.py 是唯一讀取處)。./oup office365 init # 檢查 .env、拉產品、快取預設 license
./oup adobe init # 檢查 .env、拉 Adobe 產品/profile
兩條 init 都正常返回產品列表 = 工具可用。失敗先看 .env 與下方 Red Flags。
小蔥技能站7w4.net,專業的AI技能分享平臺。
| 使用者說 | provider | 命令 |
|---|---|---|
| "給 XX 開賬號 / 新建使用者"(未說平臺) | 先問 | 用 AskUserQuestion 問 provider/LDAP/姓名 |
| "新員工 / 入職開賬號" | both | O365 → Adobe 順序執行 |
| "給 XX 開 Office / 加 Office" | office365 | 見 §3 |
| "給 XX 開 Adobe / 全家桶 / All Apps" | adobe | 見 §4 |
| "批次開戶" | — | 需要列表(CSV/貼上),逐條執行後彙總 |
./oup office365 create <ldap> --display-name "<中文名>" [--product O365_BUSINESS]
--product → 用 init 快取的預設 license.env SMTP 發通知郵件(含初始密碼)id、userPrincipalName、passwordentra.microsoftonline.cn / partner.onmschina.cn),不是國際版./oup adobe create <ldap>@<domain> [--product cc|ps|acrobat]
--product cc/all=全家桶,ps=Photoshop,acrobat=Acrobat ProaddAdobeID + add group 一次完成邀請與授權{"completed":1,"result":"success"}inspect,返回 200/存在 → 用 AskUserQuestion 確認是"重置"還是"跳過",絕不靜默覆蓋。error.group.license_quota_exceeded)→ 報告使用者,不靜默降級到其他產品。./oup office365 inspect <ldap> --json
./oup adobe inspect <ldap>@<domain> --json
給使用者摘要:賬號(LDAP+email)、初始密碼/邀請說明、已授權產品、登入入口 (O365: https://portal.partner.microsoftonline.cn · Adobe: https://creativecloud.adobe.com)。
./oup <provider> products [--refresh] # 列/重新整理產品
./oup <provider> assign <id> --product <p>
./oup <provider> reset <id> # 重置密碼
./oup <provider> delete <id> # 刪除
./oup <provider> alias <name> <product> # 設產品別名
./oup <provider> selftest # 端到端自檢(會建→授→重置→刪臨時使用者)
python3 -m app.api.server # 起 HTTP API(路由映象 CLI)
provider 別名:office365/o365/m365 同義;adobe/ps 同義。
| 症狀 | 原因 | 處理 |
|---|---|---|
O365 Insufficient privileges |
Entra App 許可權未管理員同意 | Entra → API 許可權 → 授予管理員同意 |
O365 License not available |
license 池用完 | 購買/回收,不硬刪他人 |
Adobe error.group.license_quota_exceeded |
座位不夠 | 報告使用者,不降級 |
Adobe error.domain.trust.nonexistent |
federatedID 但域名未宣告 | 改用 adobeID(預設就是) |
任一 init 報 missing env |
.env 缺欄位 |
對照 .env.example 補齊 |
入口(main.py CLI / app/api/server.py Flask) → app/services/user_service.py(統一業務門面) → app/providers/{office365,adobe}/(對接外部 API)。
擴充套件功能先加到 user_service.py 再讓 CLI/API 暴露。詳見 README.md、docs/README_ADOBE.md、docs/README_API.md。
這個 Skill 質量不錯,文件寫得很詳細,中英文都有,看一遍就能上手。功能覆蓋全面,管理 Office 365 和 Adobe 使用者的基本操作都有,支援命令列和網頁 API 兩種方式。安全方面的提醒也很到位。主要問題是文件裡提到的「oup」快捷命令和配置模板檔案沒在壓縮包裡,需要自己補上才能正常使用,否則得用完整路徑呼叫,體驗打折扣。