Powershell学习之道-文件夹共享及磁盘映射

文件夹共享概述linux

共享文件夹的应用很是普遍,客户端对服务器端进行文件管理,局域网文件直传等等,在linux下,能够简单的安装smaba协议,简单的配置以后便可使用。在windows下,能够经过图形化的操做开启这项功能,固然带着一点极客风格,咱们经过powershell(少许出现cmd)来对其进行管理。shell

操做步骤windows

查看共享列表服务器

在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下,也能够ide

λ net share

共享名       资源                            注解

-------------------------------------------------------------------------------
C$           C:\                             默认共享
D$           D:\                             默认共享
E$           E:\                             默认共享
IPC$                                         远程 IPC
ADMIN$       C:\Windows                      远程管理
Users        C:\Users
命令成功完成。

建立一个共享文件夹教程

疯狂的Powershellip

# 共享名
$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在远程的机器上建立新的共享文件夹,下面是在远程主机上建立共享文件夹的代码:ci

# 共享名
$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

小结

  1. 创建共享文件夹须要事先在启用网络共享和发现。
  2. 须要提早作好文件夹权限控制以及共享的权限控制。
  3. 经过配置cmdkey能够免去身份认证
cmdkey /add:targetname /user:username /pass:password

Powershell管理共享的相关连接:https://msdn.microsoft.com/...

免费提供最新Linux技术教程书籍,为开源技术爱好者努力作得更多更好:http://www.linuxprobe.com/

相关文章
相关标签/搜索