You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Windows 10/11中自动为用户目录配置SMB共享?

如何在Windows 10/11中自动为用户目录配置SMB共享?

当然可以!Windows完全能实现类似Linux Samba那种自动为每个用户目录创建专属SMB共享的效果,不用手动给每个新用户重复配置。下面给你两种靠谱的方案,适配不同版本的Windows:

方案一:利用组策略(适合专业版/企业版/教育版)

如果你用的是Windows专业版及以上版本,本地组策略编辑器能帮你轻松搞定自动共享,还能统一权限规则:

  • 按下Win+R弹出运行框,输入gpedit.msc回车打开本地组策略编辑器
  • 导航到:计算机配置 → 管理模板 → 网络 → Lanman服务器 → 文件共享
  • 找到并双击打开「允许自动共享用户文件夹」选项,设置为「已启用」
  • 同时你可以配置「限制自动共享的用户文件夹权限」,确保只有用户本人能访问:在同目录下找到该选项,设置为「已启用」,并选择「仅用户本人」权限

启用后,Windows会自动为每个新创建的用户生成一个隐藏共享(格式为\\你的电脑名\用户名$),只有该用户和管理员能远程访问,和Samba的效果一致。如果想要可见的共享名,可以结合下面的PowerShell脚本方案。

方案二:PowerShell脚本+任务计划(全版本通用,包括家庭版)

如果是Windows家庭版(没有组策略编辑器),或者你想要自定义共享名称,用脚本+任务计划的组合完全能实现自动触发:

第一步:编写自动共享脚本

新建一个文本文件,把下面的代码粘贴进去,然后保存为AutoShareUserHome.ps1(比如放在C:\Scripts目录下,没有这个目录就自己建一个):

# 获取所有启用的本地用户(排除系统默认账户)
$validUsers = Get-LocalUser | Where-Object { 
    $_.Enabled -eq $true -and 
    $_.Name -notin @("Administrator", "Guest", "DefaultAccount", "WDAGUtilityAccount")
}

foreach ($user in $validUsers) {
    $userHomeDir = "C:\Users\$($user.Name)"
    $shareDisplayName = "$($user.Name)_Home" # 自定义共享名,比如「张三_Home」

    # 检查用户目录是否存在
    if (Test-Path $userHomeDir) {
        # 检查该共享是否已存在
        $existingShare = Get-SmbShare | Where-Object { $_.Name -eq $shareDisplayName }
        if (-not $existingShare) {
            # 创建共享并仅赋予该用户完全控制权限
            New-SmbShare -Name $shareDisplayName -Path $userHomeDir -FullAccess $user.Name -ChangeAccess "" -ReadAccess ""
            Write-Host "已为用户 $($user.Name) 创建专属共享:$shareDisplayName"
        }
    }
}

第二步:设置任务计划自动触发脚本

我们要让脚本在新建用户时自动运行,这样新用户一创建,共享就自动配好了:

  1. 按下Win+S搜索「任务计划程序」并打开
  2. 点击右侧的「创建任务」,给任务起个名字(比如「自动创建用户目录共享」)
  3. 常规选项卡:勾选「不管用户是否登录都要运行」,再勾选「使用最高权限运行」(确保脚本有足够权限创建共享)
  4. 触发器选项卡:点击「新建」,选择「当事件被记录时」,然后设置:
    • 日志:选择「安全」
    • 来源:选择「Microsoft-Windows-Security-Auditing」
    • 事件ID:输入4720(这是Windows记录用户创建的事件ID)
  5. 操作选项卡:点击「新建」,操作选择「启动程序」,然后:
    • 程序/脚本:输入powershell.exe
    • 添加参数:输入-ExecutionPolicy Bypass -File "C:\Scripts\AutoShareUserHome.ps1"(注意替换成你实际的脚本路径)
  6. 条件选项卡:如果是笔记本电脑,可以取消勾选「只有在计算机使用交流电源时才启动此任务」,避免断电时不触发
  7. 最后点击「确定」保存任务即可

这样以后每次新建用户,系统都会自动运行脚本,为该用户创建专属的SMB共享,而且只有用户本人能远程访问,完美匹配你想要的Samba效果。

备注:内容来源于stack exchange,提问作者marioc64

火山引擎 最新活动