两台linux如何映射文件夹,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可以免去身份认证

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值