Windows Server Core 管理与 PowerShell 笔记(六)———— 文件共享
一、SMB/CIFS 协议
Windows 使用 SMB/CIFS 协议来承载文件共享和打印机共享等网络共享服务。这一部分文章就将开始介绍 Windows 的文件共享相关知识和架构。主要包括文件共享设置、共享文件等权限设置、如何挂载网络驱动器等。 在 PowerShell 中,SMBShare 模块中的 Comlet 用来配置 SMB 共享,本文也将介绍该模块中的一些最常用的指令。
此外 Windows 还有网络文件系统(NFS)的相关指令。
二、管理 SMB 客户端和服务器端配置
在 PowerShell 中,主要使用 Get-SmbClientConfiguration
和 Set-SmbClientConfiguration
两个指令来读取和写入 SMB 客户端的配置信息。主要配置包括缓存寿命、超时时间等。通常情况下,这些配置不需要怎么改动。
同样使用 Get-SmbServerConfiguration
和 Set-SmbServerConfiguration
来读取和修改服务器端的配置信息。通常也按需修改即可。
三、管理文件共享
Get-SmbShare
和 Set-SmbShare
这一对指令可以用来查看和修改当前系统中的文件共享。
PS C:\Users\ertuil> Get-SmbShare
Name ScopeName Path Description
---- --------- ---- -----------
ADMIN$ * C:\Windows 远程管理
C$ * C:\ 默认共享
E$ * E:\ 默认共享
ertuil * C:\Users\ertuil
IPC$ * 远程 IPC
PS C:\Windows\system32> Set-SmbShare -Name 'ertuil' -EncryptData $True
确认
是否确实要执行此操作?
正在执行操作“Modify”(针对目标“*,ertuil”)。
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“Y”):
在上面的例子中我们读取了当前的 SMBShare 信息,并将共享名为 ’ertuil’ 的共享修改属性 -EncryptData 为 True。
四、新建和销毁文件共享
命令 New-SmbShare
用来新建一个文件共享。主要参数有:
- -Name 共享名称
- -Path 共享文件夹位置
- -Description 描述。可选
- -EncryptData 是否加密?参数为 Boolean 值。可选。
- -FullAccess 完全控制权限。而后接主体名,比如“webserver/ertuil”。可选。
- -NoAccess 没有权限。而后接主体名。可选。
- -ReadAccess 只读权限。而后接主体名。可选。
下面的例子中新建了一个文件共享:
PS C:\Windows\system32> new-smbshare -Name ertuil -Path 'C:\Users\ertuil\' -FullAccess "webserver\ertuil"
Name ScopeName Path Description
---- --------- ---- -----------
ertuil * C:\Users\ertuil
命令 Remove-SmbShare
用来删除一个 Smb 共享。通过 -Name 指定共享名称。
PS C:\Windows\system32> Remove-SmbShare -Name 'ertuil'
确认
是否确实要执行此操作?
正在执行操作“Remove-Share”(针对目标“*,ertuil”)。
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“Y”): Y
五、文件共享权限设置
文件共享的权限在新建共享时,就已经指定了。但是我们可以使用下面几个命令来追加、撤回权限。
Grant-SmbShareAccess
用于授予新权限:
- -Name 指定共享名称
- -AccessRight {Full | Change | Read | Custom} 指定权限。
- -AccountName 指定授权对象
Revoke-SmbShareAccess
用于撤回某一个权限:
- -Name 指定共享名称
- -AccountName 指定授权对象
Block-SmbShareAccess
用于拒绝某一个用户的访问,参数与上面一样。
UnBlock-SmbShareAccess
用于取消拒绝某一个用户的访问,参数与上面一样。
Get-SmbShareAccess
用于查询一个共享的权限。使用 -Name 指定共享名:
PS C:\Windows\system32> Get-SmbShareAccess -Name ertuil
Name ScopeName AccountName AccessControlType AccessRight
---- --------- ----------- ----------------- -----------
ertuil * WEBSERVER\ertuil Allow Full
六、PowerShell 挂载一个网络驱动器
之前有说到,PowerShell 有广义的驱动器变量。因此我们也可以非常容易的挂载一个网络文件系统,并加以访问。
具体命令是 New-PSDrive
我们需要使用的具体参数有:
- -Name 驱动器名称,如 C, D, P, ns 等
- -Root 挂载源位置,比如
\\webserver\ertuil
等 - -PSProvider 一般是 FileSystem。
- -Persist 持久挂载。
- -Description 描述
例如挂载共享出来的 ertuil 文件夹:
PS C:\Windows\system32> New-PSDrive -Name P -Root //webserver/ertuil -PSProvider FileSystem
Name Used (GB) Free (GB) Provider Root CurrentLocation
---- --------- --------- -------- ---- ---------------
P FileSystem //webserver/ertuil
七、网络文件系统(NFS)
PowerShell 的文件系统的命令和 SMB 基本对偶,在此不再详细介绍。如有需要请自行查阅文档。
八、总结
本文主要介绍了 Windows 的文件共享的相关操作方式。
本人保留对侵权者及其全家发动因果律武器的权利
版权提醒
如无特殊申明,本站所有文章均是本人原创。转载请务必附上原文链接:https://www.elliot98.top/post/tech/ps6/。
如有其它需要,请邮件联系!版权所有,违者必究!