DSH Plugins Marketplace

DSH Plugins

Plugins

/

printer-warden

w

printer-warden

Manifest valid

DSH Left Sidebar Plugin: Discover LAN Shared Printers, Set as Default, Self-Heal on IP Change After Power Loss

UI (client)hasBundlePatchMachine translated

打印机管家(Printer Warden)

左侧栏的打印机管理插件:找到局域网里的共享打印机,把 Windows 打印队列绑到它、设为默认,并让它在打印机断电换 IP 后继续能打。

安装

本仓库是一个 DSH bundle(package.json 里的 dsh.bundle.patch + dsh.client)。装法二选一:

  1. 让 Harness 安装本地目录:在 DSH 里把本目录作为 bundle 安装(install_bundle),装完刷新页面,左侧栏出现打印机图标。

  2. 手写 patch:在 profile 的 cordis.patch.yml 里插入一行,name 指向克隆下来的绝对路径:

    - insert:
        - id: printer-warden
          name: file:///C:/path/to/printer-warden
    

环境要求:Windows 10/11 + DSH Web GUI;打印机和本机在同一网段。

它解决什么

  • 打印机 DHCP 地址变了,队列还指着老 IP → 打印任务卡住/报错。
  • 每次换 IP 都要进「打印机属性 → 端口」手改。
  • 「让 Windows 管理默认打印机」会把默认打印机换掉。

怎么用

  1. 点左侧栏的打印机图标,打开「打印机管家」面板。
  2. 面板会自动扫一次局域网;也可以随时点「扫描局域网」。
  3. 看到打印机后点「绑定并设为默认」(或对着某一台点「绑定」)。
  4. 以后打印机换 IP,面板会提示「打印机换了 IP」,点「修复」即可;端口本身已按名称固定,多数情况下不需要修。

原理

  1. 发现:并发扫本网段的 9100 / 631 / 515 / 80 端口;对 9100 发 @PJL INFO ID 拿型号,对 631 发 IPP Get-Printer-Attributes 拿 printer-make-and-model,再配合 mDNS 与 ARP 表识别设备。按型号里的型号数字(如 1136)与队列名匹配,所以 IP 变了也认得出是同一台。
  2. 固定端口:优先用打印机的 DHCP 主机名 / PTR 名称(实测形如 HP<MAC地址>.,由 MAC 派生、不会随 IP 变),写成标准 TCP/IP 端口的主机名。Windows 每次打印都会重新解析这个名字,路由器 DNS 会跟着 DHCP 更新,所以换 IP 不用改端口。
    • 单标签主机名在 Windows 里可能只走 NetBIOS,所以用带尾点的绝对 FQDN 写法。
    • 名字解析不出来时退化为 IP 端口,面板会提示可修复。
  3. 队列:Add-PrinterPort / Set-Printer 把现有队列指到新端口,Win32_Printer.SetDefaultPrinter 设为默认,并把 LegacyDefaultPrinterMode=1(HKCU)写死,避免 Windows 按「最近使用」改默认。
  4. 权限:先不提权直接做;只有系统拒绝时才弹一次 UAC(启动 → RunAs),结果写回 JSON。

面板/Host 接口

  • POST /printer-warden/api,body { "action": "state" | "scan" | "bind" | "default", "ip": "..." };仅回环地址、同源 POST。
  • Agent 工具 printer_warden,参数同上(action / ip)。

文件

文件作用
index.jsHost:状态计算、扫描缓存、绑定、HTTP 路由、Agent 工具
lib/scan.js发现:PJL / IPP / mDNS / ARP / 网段扫描 / 名称解析
lib/printers.js队列与端口读取、默认打印机、绑定执行(先直跑、失败再 UAC)
scripts/query.ps1无 WMI 读打印队列 + 端口 + 默认打印机
scripts/apply.ps1建/改端口、重指队列、设默认、写 LegacyDefaultPrinterMode
scripts/launch-apply.ps1需要时的 UAC 启动器
client.js左侧栏图标 + 主面板

已知限制

  • 依赖路由器 DNS 为 DHCP 客户端维护 A 记录(本机中国电信网关实测可以)。若某天路由器不再更新名称记录,面板仍能按型号找到打印机并「修复」成当前 IP。
  • 端口名固定为 PW_<型号>;换一台不同型号的打印机会新建端口(旧端口保留,可手动删)。
  • 不自动编译/下载到 PLC,也不改打印机自身网络配置。

Comments

Loading…

Similar plugins

dsh-lan-access

by Leon0555

一个DSH局域网内访问插件:让 DeepSeek Harness 可在局域网内被其他设备访问的 DSH 插件。同一局域网下,手机/平板/电脑打开浏览器即可直接访问你某台设备上的 DSH——无需 SSH、无需内网穿透,npm 一键安装。

Tools & CapabilitiesManifest valid

★ 11

↓ 472/wk

MIT

JavaScript

Aug 24, 2026

dsh plugin --profile web add dsh-lan-access

by OMSociety

DSH 插件:多机 SSH 工作台。主机库、按项目授权、右侧栏里的终端与双栏 SFTP。模型用 SSHManager 工具执行命令、传文件;你在侧栏管主机与授权。密钥不进模型上下文。

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 9

↓ 1k/wk

MIT

JavaScript

Nov 1, 2026

dsh plugin --profile web add dsh-ssh-tunnel

by zenmokandouhenshuai

DeepSeek Harness 便签墙插件:左侧栏随手记、六色纸、置顶/重点,可固定到 Windows 桌面并始终置顶,数据落在本地 notes.json。Sticky notes wall for DeepSeek Harness.

Manifest valid

★ 0

MIT

JavaScript

Nov 9, 2026

dsh plugin --profile web add dsh-notes-wall

by abworks-dev

DSH 通用钩子插件:按会话事件管理本地自动化命令,支持显式启停、工具前置拦截与有限执行记录,无需硬件。

Workflow & AutomationManifest valid

★ 0

MIT

JavaScript

Nov 3, 2026

dsh plugin --profile web add @abworks/dsh-hooks

by NEVSTOP-LAB

DSH 审批模式插件,在 DSH 窗口的权限下拉框(Read Only / Workspace Write / Full Access)旁边加一个「审批模式」按钮,在 Workspace Write 模式下工具调用自动放行

Security & AuditManifest valid

★ 9

MIT

JavaScript

Nov 8, 2026

dsh plugin --profile web add dsh-approval-mode

by kanneiren

DSH网络设置插件 | DeepSeek Harness network diagnostics, proxy detection and repair for Windows/WSL/MacOS

Tools & CapabilitiesManifest valid

★ 98

↓ 287/wk

MIT

TypeScript

Aug 22, 2026

dsh plugin --profile web add dsh-network-settings