局域网共享
官方脚本
可调用节点
v1.0.0
一键将文件夹共享到局域网(SMB)。支持共享/取消共享/查看共享列表,可选只读或读写权限,免密 Guest 或密码访问,自动开启网络发现并放行防火墙,输出访问地址
脚本能力
直接启动支持
右键启动支持
快捷键启动不支持
超级复制启动不支持
定时任务不支持
可被其他脚本调用是
依赖其他脚本否
图形化启动界面支持
一键将文件夹共享到局域网(SMB),支持只读/读写权限选择、取消共享、查看当前共享列表,自动生成
\\电脑名\共享名访问地址。
核心特性
- 一键共享:选中文件夹右键即可共享到局域网,也可在启动窗口中浏览选择
- 权限可选:只读 / 读写两种权限,默认只读更安全
- 免密/密码访问可选:默认自动启用来宾(Guest)账户实现局域网免密访问;关闭开关则需输入本机账号密码访问(更安全)
- 自动补齐文件夹安全权限:共享时自动为文件夹添加 Everyone 的 NTFS 权限,避免"共享了但打不开"
- 可取消共享:选中已共享的文件夹,一键取消共享
- 查看共享列表:随时了解当前机器对外开放了哪些共享
- 自动打通访问环境:共享时自动把网络设为专用、启用网络发现与"文件和打印机共享"防火墙规则、启动 FDResPub/fdPHost 发现服务,让局域网其他设备能发现和访问
- 盒子图形界面:自动生成启动窗口,填完点执行即可
- 支持脚本联动:声明为节点脚本,其他脚本可调用它并拿回 UNC 访问路径
脚本演示

安装方法
本脚本的运行环境及图形化窗口均依赖"不忙脚本盒子",建议仅通过盒子安装和使用本脚本。
前置条件:安装好 不忙脚本盒子
- 打开盒子 → 脚本市场 → 搜索 「局域网共享」
- 点击「安装」
使用方式
- 直接启动
- 在盒子里点击脚本卡片,弹出启动窗口
- 选择要共享的文件夹,选择操作(共享/取消共享/查看列表)与权限,点「执行」
- 右键启动
- 在文件管理器中选中文件夹,右键 → 选择「局域网共享」
- 默认按「共享 + 只读」执行(可在启动窗口修改默认值)
- 自定义共享名
- 启动窗口中填写「共享名」,留空则使用文件夹名
💡 使用提示
- 共享/取消共享需要管理员权限,首次执行会弹出 UAC 提权窗口,请允许
- 执行「共享」时脚本会自动开启网络发现环境(网络改为专用、放行防火墙、启动发现服务),无需手动配置;这会把当前网络标记为"专用",若在公共 Wi-Fi 下使用请注意隐私,可在"设置 → WLAN"改回公用
- 「免密访问」开启时脚本会启用系统内置 Guest 账户(他机双击即开、不用密码);关闭时他机首次访问需输入本机的 Windows 账号密码,更安全。不管哪种,文件夹的 NTFS 权限都会自动补 Everyone
- 若访问方电脑(Win10/11)提示"组策略阻止不安全的来宾登录",需在对方电脑管理员运行:
reg add HKLM\SOFTWARE\Policies\Microsoft\Windows\LanmanWorkstation /v AllowInsecureGuestAuth /t REG_DWORD /d 1 /f - 权限设为 Everyone,建议仅在可信局域网(家庭/办公内网)环境使用
- 其他设备访问地址为
\\你的电脑名\共享名;也可在"网络"邻居列表中看到本机(首次发现可能延迟数秒) - 同名共享重新创建时会覆盖旧设置,可用此方式切换只读/读写权限
节点脚本(开发者阅读)
本脚本已声明为节点,被联动调用(invoke_mode == "node")时回传信封:
import json, sys, requests
payload = json.load(open(sys.argv[1], encoding='utf-8'))
env = payload["environment"]
r = requests.post(f"{env['api_base']}/api/link", json={
"script_id": "220949a5-1a53-4688-95b1-b70a13eebf8e",
"data": {"folder_paths": ["D:/share-demo"]},
"params": {"action": "share", "permission": "read"},
}, timeout=300)
body = r.json()
if body.get("success"):
print(body["result"]["share_paths"]) # ["\\电脑名\\share-demo"]
print(body["result"]["summary"])
业务键说明:
| 键 | 类型 | 说明 |
|---|---|---|
share_paths |
字符串数组 | UNC 访问路径列表 |
summary |
字符串 | 每个文件夹的处理结果概要 |
🖥️ 环境要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10/11(需专业版或企业版,家庭版无完整 SMB 服务端;需启用 SMB 1.0/CIFS 之外的默认"文件和打印机共享"支持) |
| 运行环境 | Windows PowerShell 5.1+(系统自带) |
| 权限 | 管理员(脚本会自动请求 UAC 提权) |
本脚本已声明为节点,可被其他脚本通过「不忙脚本盒子」机制调用。完整配置见下方 TOML,其他脚本若需调用请严格按此配置构造请求。
bm-scripts-box-rc.toml
[bmscriptsbox]
[bmscriptsbox.info]
id = "220949a5-1a53-4688-95b1-b70a13eebf8e"
name = "局域网共享"
desc = "一键将文件夹共享到局域网(SMB)。支持共享/取消共享/查看共享列表,可选只读或读写权限,免密 Guest 或密码访问,自动开启网络发现并放行防火墙,输出访问地址"
version = "1.0.0"
icon = "./imgs/logo.png"
[bmscriptsbox.runtime]
language = "powershell"
language_version = ">=5.1"
entry = "main.ps1"
terminal = "always"
[bmscriptsbox.triggers.context_menu]
enabled = true
targets = ["directory", "files"]
[[bmscriptsbox.inputs]]
name = "folder_paths"
label = "文件夹"
type = "list"
pick = "folders"
description = "要共享/取消共享的文件夹绝对路径"
[[bmscriptsbox.params]]
name = "action"
label = "操作"
type = "str"
default = "share"
choices = ["share", "unshare", "list"]
choice_labels = { share = "共享", unshare = "取消共享", list = "查看当前共享" }
description = "要执行的共享管理操作"
[[bmscriptsbox.params]]
name = "permission"
label = "权限"
type = "str"
default = "read"
choices = ["read", "full"]
choice_labels = { read = "只读", full = "读写" }
when = { field = "action", eq = "share" }
description = "Everyone 的访问级别:read=只读,full=读写"
[[bmscriptsbox.params]]
name = "share_name"
label = "共享名"
type = "str"
default = ""
when = { field = "action", eq = "share" }
description = "自定义共享名,留空则使用文件夹名"
[[bmscriptsbox.params]]
name = "guest_access"
label = "免密访问"
type = "bool"
default = true
when = { field = "action", eq = "share" }
description = "true=自动启用Guest来宾账户,局域网设备免输密码直接访问;false=他机访问需输入本机账号密码"
[bmscriptsbox.params_form]
enabled = true
[bmscriptsbox.node]
enabled = true
[[bmscriptsbox.outputs]]
name = "share_paths"
type = "list"
description = "生成的 UNC 访问路径列表,如 \\\\电脑名\\共享名(list/unshare 操作时也有对应结果)"
[[bmscriptsbox.outputs]]
name = "summary"
type = "str"
description = "文字结果概要"
评论