直接修改共享路径可避免同事重配:先用net share删除原共享,再以同名重新共享新路径,权限自动继承;迁移时用robocopy /copyall /sec保留权限,或用mklink /j创建目录联结实现无缝切换。

修改已共享文件夹的路径
想把原来共享在C盘的“项目资料”文件夹挪到D盘,又不想让其他同事重新记路径、重配权限,就得直接改共享路径,而不是删了重建。
第一步:以管理员身份打开命令提示符或PowerShell。
第二步:执行命令 【net share 旧共享名 /delete】,例如 net share ProjectData /delete。这一步必须先删掉原共享,否则无法绑定新路径——系统不允许同一共享名指向两个不同位置。
第三步:用相同共享名重新发布新路径,命令为 【net share 旧共享名=D:新路径 /grant:Everyone,READ】。若需写入权限,把 READ 换成 CHANGE 或 FULL。
第四步:验证是否生效——在另一台电脑地址栏输入 \本机名旧共享名,应能立即打开D盘下的新位置,且原有访问权限逻辑(如Everyone读取)全部保留。
不改共享名,只换底层文件夹位置
你已经设置了共享,但磁盘空间告急,需要把共享文件夹整个迁移到另一块硬盘,同时确保所有用户仍用原路径访问、不感知迁移过程。
方法一:用robocopy完整迁移并保留权限
以管理员身份运行PowerShell,执行:robocopy "C:OldShare" "D:NewShare" /MIR /COPYALL /SEC /R:1 /W:1 /LOG:C:migrate.log。
其中 【/COPYALL /SEC】是关键,缺一不可,否则NTFS权限和共享继承关系会丢失,导致别人访问时提示“拒绝访问”。
方法二:符号链接无缝切换
迁移完成后,在原路径(如C:OldShare)上删除文件夹,执行:mklink /J "C:OldShare" "D:NewShare"。
这条命令创建一个目录联结,Windows会把它当作原始文件夹处理——共享服务、权限检查、甚至资源管理器里的显示路径都完全不变。
隐藏共享目录并保留访问能力
你希望这个共享只给特定人用,不让它出现在“网络”窗口里被随意发现,但又要保证知道路径的人能正常访问。
右键目标文件夹 → 属性 → 共享 → 高级共享 → 勾选“共享此文件夹” → 在“共享名”框中,在名字末尾加上 【$】,例如填入 InternalDocs$。
确认后,该共享将从所有人的“网络”视图中消失,但只要对方知道完整路径 \计算机名InternalDocs$,仍可照常访问。
注意:$符号必须紧贴共享名末尾,中间不能有空格或标点,否则无效。
批量修改多个共享的权限设置
公司刚换了IT策略,要求所有共享文件夹默认禁止写入,只保留读取权限,而你手上有12个已存在的共享,逐个进属性窗口改太耗时。
① 打开PowerShell(管理员),执行:Get-SmbShare | Where-Object {$_.Name -notmatch '$$'} | ForEach-Object {
② 继续输入以下三行(注意缩进和换行):$shareName = $_.NameGrant-SmbShareAccess -Name $shareName -AccountName "Everyone" -AccessRight Read -Confirm:$falseRevoke-SmbShareAccess -Name $shareName -AccountName "Everyone" -Force
③ 回车运行。脚本会自动跳过所有带$的隐藏共享,仅对常规共享执行权限重置——【Revoke-SmbShareAccess必须放在Grant之后,否则会清空权限导致无法访问】。
④ 验证任意一个共享:右键属性 → 共享 → 权限,确认“Everyone”只有“读取”被勾选。











