问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Windows局域网文件传输:就近共享与共享文件夹详解

创作时间:
作者:
@小白创作中心

Windows局域网文件传输:就近共享与共享文件夹详解

引用
CSDN
1.
https://blog.csdn.net/xuchaoxin1375/article/details/139986333

在Windows系统中,局域网文件传输是一个常见的需求。本文将详细介绍两种主要的文件传输方式:就近共享和共享文件夹,并提供详细的步骤和示例代码。

就近共享

就近共享是Windows 10及以上版本中的一种简单文件传输方式,支持单个和多个文件共享,配置简单。但是,它要求传输文件的机器都是Windows 10以上的设备,不能直接共享文件夹目录,也不支持直接点播和预览常见格式,比如视频和音乐等。

对于Android设备,可以使用NearShare软件来实现就近共享功能。NearShare软件体积不小,可以用镜像加速链接后下载,或者从论坛下载。实际体验下来还可以,操作简单。

设置共享文件夹

共享文件夹是一种更通用和强大的文件传输方式,支持老系统,和非Windows系统访问资源。为了更好地理解Windows的共享文件夹及其相关功能,可以阅读一下准备工作,尽管这不是必须的。

选择合适的目录创建共享文件夹

为了避免共享文件夹创建完成后,其他用户无法访问(尽管登录成功,但内容是空的),建议把共享文件夹建立或选择在非用户目录下,例如:

  • C:\share

这类简短的目录;而

  • C:\User\UserX...

这类目录(这个目录是用户UserX的家目录下的某个目录,不妨记为目录P)则容易与到权限问题。

创建共享文件夹

Windows上创建共享文件夹的方式有好几种,有命令行方式,也有GUI方式。下面分别介绍这两大类方法。

使用命令行net share方式创建和管理

建议在Win10之前的系统中使用,虽然截至Win11为止还通用,但这类方法不在被维护,新系统用PowerShell的方法。

net share <ShareName>
net share <ShareName>=<drive>:<DirectoryPath> [/grant:<user>,{read | change |full}] [/users:<number> | /unlimited] [/remark:<text>] [/cache:{manual | documents | programs | BranchCache |none} ]
net share [/users:<number> | /unlimited] [/remark:<text>] [/cache:{manual | documents | programs | BranchCache |none} ]
net share {<ShareName> | <DeviceName> | <drive>:<DirectoryPath>} /delete
net share <ShareName> \\<ComputerName> /delete

示例:

用管理员身份打开一个命令行窗口

假设我的机器上有一个目录C:\sharePlus,那么我执行以下语句

PS> net share DemoShare=C:\sharePlus /remark:"demo share"
DemoShare was shared successfully.

此时其他计算机可以访问DemoShare这个名字来访问该目录中的内容。例如,创建共享文件夹的机器名为colorfulcxxu,并且启用了网络发现,在另一台也启用了网络发现的Windows中执行

start \\colorfulcxxu\demoshare

就可以访问共享文件夹demoshare了。

使用PowerShell中的SmbShare模块命令

这个模块中命令众多,适合于Windows 10以及之后的系统使用。后面单独开一节介绍常用的几个命令。

使用shrpubw程序引导创建

使用共享文件夹引导程序shrpubw.exe,这是一个Windows系统自带的一个使用程序。打开Windows命令行,输入shrpubw.exe即可启动。

shrpubw.exe是一个在Microsoft Windows操作系统中用于帮助用户创建和配置共享文件夹的向导程序。这个可执行文件(.exe)是系统自带的一部分,由Microsoft Corporation开发,主要用于简化网络共享设置过程。

当用户需要在网络上共享本地计算机上的某个文件夹,以便其他网络用户可以访问时,可以通过运行shrpubw.exe启动“创建共享文件夹向导”。该向导提供了图形化界面,引导用户完成以下步骤:

  1. 选择要共享的文件夹路径。
  2. 设置共享名,即网络上其他用户看到的共享资源的名称。
  3. 配置共享权限,包括哪些用户或组可以访问此共享,并确定他们的读写权限级别。

该引导软件支持它会更改防火墙使得共享文件夹能够生效(通常不需要我们自己再去设置防火墙)。

总的来说这是个很方便的程序,但是注意,Windows为了安全,匿名访问可能是不被允许的,如果需要匿名,可能要改注册表策略组等,我的建议是创建一个名为smb的用户专门用来访问共享文件夹就可以了(不需要登录该用户桌面),既安全又高效,如果要匿名的体验,可以把密码设置简单点即可。

使用资源管理器图形界面创建和管理

  1. 设置防火墙(参考准备工作一节)
  2. 选择文件或文件夹进行共享

打开资源管理器,右键进行共享设置

可以指定对那些人共享(进入设置可以允许任何用户访问,但是不保证匿名访问可行,可能需要进一步设置)。对于启用了SMB1功能的及其可能默认允许匿名访问。

包括选择哪些用户能够访问被共享的文件或目录

查看共享文件夹的网络路径

事实上您可以通过右键被共享的文件夹,查看其属性,其中的sharing部分给出了网络路径(NetWork Path)。其中\后面跟的第一个字段(截止于\前)的是当前共享文件夹的主机名(但是需要您启用网络发现才可以直接使用此路径访问,否则需要用IP地址代替主机名)。

使用PowerShell管理共享文件夹

在PowerShell中,可以使用New-SmbShare、Get-SmbShare和Remove-SmbShare等命令来创建、修改和删除共享文件夹。这些命令提供了更强大的功能和灵活性来管理共享资源。

常用命令

基础命令

  • New-SmbShare (SmbShare) | Microsoft Learn
  • Get-SmbShare (SmbShare) | Microsoft Learn
  • Remove-SmbShare (SmbShare) | Microsoft Learn

挂载类的命令

  • New-SmbMapping (SmbShare) | Microsoft Learn默认挂载只对powershell可见,资源管理器中是看不到的
  • 同理有Get-SmbMapping,Remove-SmbMapping
  • 在powershell中挂载共享文件夹的地址为盘符,可以方便命令行访问共享文件夹中的内容而不需要打开资源管理器
  • 当然,您也可以选择使用合适的命令先挂载到资源管理器,然后任何命令行(比如net use或new-psdrive)就可以访问挂载后的盘符了
  • New-PSDrive (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn
  • 如果需要挂载到资源管理器,那么可以考虑用New-PSdrive命令
  • 这里直接用被挂载的文件夹所在主机名,需要启用系统的网络发现功能才可以
PS C:\Users\cxxu\Desktop> New-PSDrive -Name "Z" -PSProvider "FileSystem" -Root "\\redmibookpc\share" -Persist
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Z                 114.17        361.79 FileSystem    \\redmibookpc\share
PS C:\Users\cxxu\Desktop>

而直接用IP导致报错,将来可能会改进

PS C:\Users\cxxu\Desktop> New-PSDrive -Name "Q" -PSProvider "FileSystem" -Root "\\192.168.1.158\share"
New-PSDrive: The specified drive root "\\192.168.1.158\share" either does not exist, or it is not a folder.

创建共享文件夹

使用New-SmbShare命令可以创建新的共享文件夹。下面是创建共享文件夹的基本示例:

# 创建共享文件夹
New-SmbShare -Name "Share" -Path "C:\Share" -ChangeAccess "Everyone" #这里赋予任意用户修改权限(包含了可读权限和修改权限)

参数解释

  • -Name:指定共享的名称。
  • -Path:指定要共享的文件夹路径。
  • -FullAccess:指定具有完全访问权限的用户或组。
    如果需要设置“读取”或“更改”权限,可以使用-ReadAccess和-ChangeAccess参数,并且这三个参数可以同时出现

修改共享文件夹

使用Set-SmbShare命令可以修改现有的共享文件夹设置。例如,修改共享文件夹的权限:

# 修改共享文件夹的权限
Set-SmbShare -Name "Share" -ChangeAccess "Everyone"

删除共享文件夹

使用Remove-SmbShare命令可以删除共享文件夹:

# 删除共享文件夹
Remove-SmbShare -Name "Share" -Force

查看现有共享文件夹(推荐方法)

使用Get-SmbShare命令可以查看现有的共享文件夹:

# 查看所有共享文件夹
Get-SmbShare
# 查看特定共享文件夹
Get-SmbShare -Name "Share"
PS> get-smbshare
Name                   ScopeName Path      Description
----                   --------- ----      -----------
DemoShareCC            *         C:\share1 share folder grant everyone
DemoShareFC            *         C:\share1 share folder grant everyone
DemoShareMultipleGrant *         C:\share1
DemoShareRC            *         C:\share1 share folder grant everyone
IPC$                   *                   Remote IPC
share                  *         C:\share  ColorfulCxxuShare
Users                  *         C:\Users
PS> get-smbshare -Name share
Name  ScopeName Path     Description
----  --------- ----     -----------
share *         C:\share ColorfulCxxuShare

通过上述命令,您可以在PowerShell中有效地管理共享文件夹,包括创建、修改和删除共享文件夹。合理设置权限和管理共享资源,可以提高网络资源的安全性和使用效率。

示例:完整的创建和配置共享文件夹过程

假设我们要创建一个名为ReportsShare的共享文件夹,路径为D:\Documents\Reports,并赋予用户组Everyone“读取”权限,下面是完整的过程:

# 创建共享文件夹并设置读取权限
New-SmbShare -Name "ReportsShare" -Path "D:\Documents\Reports" -ReadAccess "Everyone"
# 查看已创建的共享
Get-SmbShare -Name "ReportsShare"
# 修改权限为更改权限
Set-SmbShare -Name "ReportsShare" -ChangeAccess "Everyone"
# 最后删除共享文件夹
Remove-SmbShare -Name "ReportsShare" -Force

访问共享文件夹及其相关操作

另见它文windows@资源管理器中的地址栏@访问共享文件夹的各种方法@管理共享文件夹-CSDN博客

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号