it编程 > 前端脚本 > Powershell

Powershell中的文件夹共享及磁盘映射的操作步骤

4人参与 2025-04-24 Powershell

在linux环境下,我们很轻易就能得心应手地通过命令操作一切事物,在windows下,powershell也算是后起之秀,提供大量的cmdlet以及c#的横向拓展。下面将由小编带领大家通过powershell实现文件夹共享,当然文中也不会冷落cmd这枚老将。

文件夹共享概述

共享文件夹的应用非常广泛,客户端对服务器端进行文件管理,局域网文件直传等等,在linux下,可以简单的安装smaba协议,简单的配置之后即可使用。在windows下,可以通过图形化的操作开启这项功能,当然带着一点极客风格,我们通过powershell(少量出现cmd)来对其进行管理。

操作步骤

查看共享列表

在powershell内,我们可以通过执行以下cmdlet获取共享信息:

λ get-wmiobject -class win32_share
name                                      path                                      description
----                                      ----                                      -----------
admin$                                    c:\windows                                远程管理
c$                                        c:\                                       默认共享
d$                                        d:\                                       默认共享
e$                                        e:\                                       默认共享
ipc$                                                                                远程 ipc
users                                     c:\users

同理,在cmd下,也可以

λ net share
共享名       资源                            注解
-------------------------------------------------------------------------------
c$           c:\                             默认共享
d$           d:\                             默认共享
e$           e:\                             默认共享
ipc$                                         远程 ipc
admin$       c:\windows                      远程管理
users        c:\users
命令成功完成。

创建一个共享文件夹

疯狂的powershell

# 共享名
$sharename = 'testshare'
# 共享路径
$path = 'd:\share'
if (!(get-wmiobject -class win32_share -filter "name='$sharename'")) 
{ 
	$shares = [wmiclass]"win32_share" 
	$shares.create($path,$sharename,0).returnvalue
}
else
{
	write-warning "$sharename has been sharing!!"
}

如果如果您有远程机器的管理员权限的话,也利用wmi在远程的机器上创建新的共享文件夹,下面是在远程主机上创建共享文件夹的代码:

# 共享名
$sharename = 'testshare'
# 共享路径
$path = 'd:\share'
# 远程主机名
$server = 'server'
if (!(get-wmiobject -class win32_share -filter "name='$sharename'")) 
{ 
	$shares = [wmiclass]"\\$server\root\cimv2:win32_share" 
	$shares.create($path,$sharename,0).returnvalue
}
else
{
	write-warning "$sharename has been sharing!!"
}

低调的cmd

::建议先查看当前的共享文件夹再进行创建操作
net share testshare=d:\share /users:25 /remark:"test share of the a folder"

我们很轻易地就能将一个文件夹的共享状态开启,我们可以通过unc路径对其进行访问。创建完文件共享之后,我们来看看怎么使用吧。

驱动器映射和共享访问

接下来,我们摒弃图形化界面的操作(如果你非喜欢那么做的话,可以通过网上邻居【“网络”】进行查看,或者在计算机图标下右键选择映射网络驱动器),我们来通过命令去启用吧。

强悍的powershell

临时创建一个网络驱动器映射:

(new-object -comobject wscript.network).mapnetworkdrive("z:", "\\test-pc\users")

创建一个持久化的网络驱动器映射:

# new-psdrive 加上 -persist 参数使得驱动器在 powershell 之外可见。
# 要真正地创建一个永久的网络驱动器,请确保加上 -scope global。/
# 如果 new-psdrive 在全局作用域范围之外运行(例如,在一个脚本中运行),该驱动器只会在脚本运行时出现在文件管理器中。
new-psdrive -name z -psprovider filesystem -root \\test-pc\users -persist -scope global

小巧的cmd

::下面这条命令虽然可以在cmd使用此磁盘映射,但是不可利用资源管理器加载。
net use z: \\test-pc\users
::这里是将systemroot文件夹映射为z:驱动器,可利用"explorer.exe"加载,可惜不能使用网络路径。
subst z: $env:systemroot

完成如上的工作之后,不出意外,你的资源管理器会出现你想要访问的网络路径的图标。

删除共享

如果不需要再使用此共享文件夹了,可以卸载掉网络驱动器,并在共享的主机上删除该共享。

powershell

$shares = get-wmiobject win32_share | where {$_.name -eq ""}
foreach ($share in $shares) {
   $share.delete()
}

cmd

net share testshare /delete

小结

cmdkey /add:targetname /user:username /pass:password

扩展:使用powershell 中设置共享文件夹

使用powershell 中设置共享文件夹

# 定义要共享的文件夹路径和共享名称
$folderpath = "c:\users\public\documents\sharedfolder"
$sharename = "sharedfolder"
# 创建共享
new-smbshare -name $sharename -path $folderpath -fullaccess "everyone"
# 显示共享信息
get-smbshare $sharename

使用new-smbshare命令创建了一个名为sharedfolder的共享,并指定了共享文件夹的路径和完全访问权限(即允许所有人访问)。然后,我们使用get-smbshare命令显示共享的信息。

需要注意的是,要使用new-smbshare和get-smbshare命令,你需要在你的计算机上安装 windows management framework 5.1 或更高版本。此外,还需要确保你有权限在计算机上创建共享,并且你要共享的文件夹必须存在。

到此这篇关于powershell中的文件夹共享及磁盘映射的文章就介绍到这了,更多相关powershell磁盘映射内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

powershell常用命令大全

04-24

shell编程之函数与数组的使用详解

04-15

MySQL备份Shell脚本的实现

03-25

Win11/win10管理PowerShell新方式:支持自动更新

03-03

详解如何利用PowerShell提取wps表格中嵌入的图片

02-13

利用PowerShell一键下载Nuget某个包的所有版本

02-13

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论