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

小结

  1. 建立共享文件夹需要事先在启用网络共享和发现。
  2. 需要提前做好文件夹权限控制以及共享的权限控制。
  3. 通过配置cmdkey可以免去身份认证
cmdkey /add:targetname /user:username /pass:password
时间: 2024-08-19 00:34:27

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

解决WIN7与虚拟机CentOS的文件夹共享问题

一.系统与软件 WIN7 64bit.VirtualBox 5.0.14.CentOS 6.5.SecureCRT 7.2.3 二.使用文件夹共享需要安装增强功能,但是安装时无法读取光盘iso文件 三.为了方便操作,配置静态IP,并使用CRT连接上去(参考http://my.oschina.net/allman90/blog/294847?fromerr=CotpElUe) [[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcf

《Android学习指南》文件夹

转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描写叙述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先看Android的课程,这样会非常累. 1.Android学习指南基础篇 对于有Java基础的朋友,能够通过本分类60讲左右的课程,打下比較坚实的基础. 2.Android学习指南项目实训篇 对于学过"1.Android2.2学习指南基础篇"的朋友,能够通过本分类项目的联系,加深对基础

VMware中linux与window文件夹共享

在虚拟机下来实现在windows下共享一个文件夹: (前提已安装完成vmtools:http://blog.csdn.net/pipisorry/article/details/21318931) 打开VMware->工具栏->虚拟机->选择 设置->选项 共享文件夹 点添加,按提示来添加一个windows下的文件夹.在/mnt/hgfs下就是你在windows下共享的文件夹了 不行的话直接将文件(夹)从linux拖曳到windows桌面上(文件夹中不能包含快捷方式) 两台wind

Java学习-010-创建文件夹源代码

此文源码主要为应用 Java 创建文件目录的源码.若有不足之处,敬请大神指正,不胜感激! 创建文件夹源代码如下所示: 1 /** 2 * @function 文件操作:创建文件夹.若文件夹不存在,则级联创建文件夹:若存在则不创建. 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.java.tools FileUtils.java createPath, 2015-2-2 21:03:31

无法更新运行时文件夹共享状态:在客户机操作系统内装载共享文件夹文件系统时出错--解决办法

1.问题描述: 在物理主机和虚拟机CentOS6.4共享文件的时候出现:无法更新运行时文件夹共享状态:在客户机操作系统内装载共享文件夹文件系统时出错 其他症状: vmware-hgfsclient  能够看到共享的文件夹名字 mount.vmhgfs  .host:/ /mnt  报错: Error: cannot mount filesystem: No such device 2.解决思路 /etc/vmware-tools/services.sh restart 如果出现FAILD yum

c# 设置和取消文件夹共享及执行Dos命令

/// <summary> /// 设置文件夹共享 /// </summary> /// <param name="FolderPath">文件夹路径</param> /// <param name="ShareName">共享名</param> /// <param name="Description">共享注释</param> /// <re

如何快速取消所有文件夹共享?进来瞧瞧

原文:如何快速取消所有文件夹共享?进来瞧瞧 快速取消所有文件夹共享: 把文件夹共享给别人但忘记取消,想取消共享但找不到那个文件夹了,怎么办? 双击这个工具,可清除所有共享. strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\r

freebsd 与win7进行文件夹共享

以前用的是ubuntu ,系统安装好之后,再装个vmware tools 就可以设置文件夹共享,进入/mnt/hgfs 找到共享文件夹 现在工作要用到freebsd ,要装vmware tools确实麻烦,试了几次都没有成功过,找了一下其他方法共享. http://blog.chinaunix.net/uid-22914802-id-1765557.html 用安装任何其他软件.直接用命令 mount_smbfs -I windowsip //[email protected]/共享文件夹 /m

WIN7中如何设置文件夹共享

通常,在局域网内共享文件是非常有用的,也是一种非常好的共享资源和传送文件的方式.下面我将跟大家分享一下win7系统中局域网内共享文件夹的办法: 第一步.共享文件夹的设置,找到我们需要共享的文件夹,然后右击->属性,打开如下对话框: 打开共享选项,出现如下对话框: 在这里,我们选择Everyone角色,点击添加,并为Everyone角色设置权限,读取或者读/写权限,如图所示: 点击共享,然后回到属性对话框,我们再次选择高级共享,打开如下对话框,选择共享此文件夹: 第二步.网络的设置:打开网络和共享