ManagementClass("Win32_Share")之共享目录
public class ShareFolder
{
private static readonly Dictionary<uint, string> ReturnDetails = new Dictionary<uint, string>(); /// <summary>
/// Success (0)
/// Access denied (2)
/// Unknown failure (8)
/// Invalid name (9)
/// Invalid level (10)
/// Invalid parameter (21)
/// Duplicate share (22)
/// Redirected path (23)
/// Unknown device or directory (24)
/// Net name not found (25)
/// Other (26–4294967295)
/// </summary>
static ShareFolder()
{
ReturnDetails.Add(, "Success");
ReturnDetails.Add(, "Access denied");
ReturnDetails.Add(, "Unknown failure");
ReturnDetails.Add(, "Invalid name");
ReturnDetails.Add(, "Invalid level");
ReturnDetails.Add(, "Invalid parameter");
ReturnDetails.Add(, "Duplicate share");
ReturnDetails.Add(, "Redirected path");
ReturnDetails.Add(, "Unknown device or directory");
ReturnDetails.Add(, "Net name not found");
} /// <summary>
/// 设置文件夹共享
/// </summary>
/// <param name="folderPath">文件夹路径</param>
/// <param name="shareName">共享名</param>
/// <param name="description">共享注释</param>
/// <returns></returns>
public static void Share(string folderPath, string shareName, string description)
{
var directoryInfo = new DirectoryInfo(folderPath);
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
directorySecurity.AddAccessRule(new FileSystemAccessRule("everyone", FileSystemRights.FullControl,
InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));
directoryInfo.SetAccessControl(directorySecurity); var managementClass = new ManagementClass("Win32_Share");
// Create ManagementBaseObjects for in and out parameters
ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");
ManagementBaseObject outParams;
// Set the input parameters
inParams["Description"] = description;
inParams["Name"] = shareName;
inParams["Path"] = folderPath;
inParams["Type"] = ; // Disk Drive
inParams["MaximumAllowed"] = null;
inParams["Password"] = null;
inParams["Access"] = null; // Make Everyone has full control access.
outParams = managementClass.InvokeMethod("Create", inParams, null);
// Check to see if the method invocation was successful
uint result = (uint)(outParams.Properties["ReturnValue"].Value); if (result != )
{
if (ReturnDetails.ContainsKey(result))
{
throw new Exception(ReturnDetails[result]);
}
else
{
throw new Exception("failed to create share folder");
}
}
}
}
//测试
class Program
{
static void Main(string[] args)
{
string folderPath = @"C:\SML\ShareFolder7"; //创建文件夹
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
} ShareFolder.Share(folderPath, "共享文件7", "共享注释"); }
}
ManagementClass("Win32_Share")之共享目录的更多相关文章
- samba共享目录
samba 原理:在linux机器上共享一个目录出来,让windows通过网上邻居去访问 (i)共享一个不需要输入用户名和密码就能访问的目录(可读不可写) 一.打开配置文件: vim /etc/sam ...
- 关于nfs共享目录的使用技巧
nfs客户端的使用 1.查看nfs服务器信息挂载信息 1)在客户端,要查看nfs服务器上有哪些共享目录 # showmount -e nfs服务器ip 在客户端,要查看nfs服务器上有哪些客户端的目录 ...
- Linux主机共享目录给Windows主机的方法
Linux主机共享目录可以通过samba来实现 首先,来看下百科上关于samba的介绍: Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Ser ...
- 客户端挂载NFS服务器中的共享目录(用户后台上传图片与前台上传图片放在同一个服务器上)
服务器端使用showmount命令查询NFS的共享状态 # showmount -e //默认查看自己共享的服务,前提是要DNS能解析自己,不然容易报错 # showmount -a //显示已经与客 ...
- virtualBox下面安装linux系统如何共享目录
背景: 系统是win+virtualBox 在虚拟机中安装了linuxMint系统. 如何共享目录呢 第一步: 在虚拟机中安装增强功能 2,在virtualBox中设置共享目录 3,在linux下创建 ...
- linux查看访问windows共享目录NT_STATUS_DUPLICATE_NAME问题解决
linux查看访问windows共享目录NT_STATUS_DUPLICATE_NAME问题解决 [jason@superfreak ~]$ smbclient //powerhouse-smb.my ...
- ubuntu 挂载windows共享目录的方法
建立windows共享目录 右击要共享的文件夹-->属性-->高级共享-->添加用户-->添加完全控制权限 假设建立的共享地址为\\192.168.1.100\Linux 获取 ...
- vmtool安装成功,但是hgfs下没有被挂接共享目录!
vmtool安装成功,但是hgfs下没有被挂接共享目录! 2013-01-04 16:05:18| 分类: Linux|字号 订阅 1.使用vmtool 提供的命令——vmware-hgfs ...
- 【转载】ubuntu和debian环境下无法挂载vmware虚拟机共享目录的解决办法
转载自:http://www.fengfly.com/plus/view-210022-1.html 第一步,安装VMware Tools 打开虚拟机ubuntu(debian原理一样)后,首先,点击 ...
随机推荐
- 『Python基础-3』变量、定义变量、变量类型、关键字Python基础-3』变量、定义变量、变量类型、关键字
『Python基础-3』变量.定义变量.变量类型.关键字 目录: 1.Python变量.变量的命名 2.变量的类型(Python数据类型) 3.Python关键字 1. Python 变量.变量的命名 ...
- IPV6路由技术
OSPFV3 一.OSPFv3概述:协议号89 1.概念: OSPFv3是ospf(开放式最短路径优先)版本3的简称,主要提供对IPV6的支持,遵循的标准为RFC2740(OSPF for IPv6) ...
- GoLand软件免激活的使用方法
由于官方的Goland软件,免费使用期限是30天.如果你不购买产品的话,就需要不断的卸载和重装软件才能使用.不过要是您的资金允许的话,可以去http://www.jetbrains.com/go/bu ...
- 搭建简单Django服务并通过HttpRequester实现GET/POST http请求提交表单
调试Django框架写的服务时,需要模拟客户端发送POST请求,然而浏览器只能模拟简单的GET请求(将参数写在url内),网上搜索得到了HttpRequester这一firefox插件,完美的实现了模 ...
- 电子质检报告系统v3.8
南京转折点信息是太阳升软件全资子公司,一家专业从事医药软件开发的医药软件企业. 根据新版GSP支持医药企业药品质检报告电子化的要求及国家药监局的解释:供货商提供的加盖企业电子印章的电子药品检验报告与纸 ...
- OSG-漫游
本文转至http://www.cnblogs.com/shapherd/archive/2010/08/10/osg.html 作者写的比较好,再次收藏,希望更多的人可以看到这个文章 互联网是是一个相 ...
- 适配chrome65最新selenium-chromedriver
网盘地址:https://pan.baidu.com/s/1BmdwRgD96IL32-3FTFxPSg 密码: 2vg6
- 使用maven构建web项目(简易版)
在eclipse中使用maven开发一个web项目 第一步:安装maven:在Windows上安装Maven 中间省略很多步骤....(包括关于eclipse中配置maven) 第二步:不用懂任何ma ...
- Logistic回归和SVM的异同
这个问题在最近面试的时候被问了几次,让谈一下Logistic回归(以下简称LR)和SVM的异同.由于之前没有对比分析过,而且不知道从哪个角度去分析,一时语塞,只能不知为不知. 现在对这二者做一个对比分 ...
- 十四:Using CGroups with YARN
Cgroups可以控制linux 上应用程序的资源(内存.CPU)使用,yarn可以使用Cgroups来CPU使用.Cgroups的配置,在yarn-site.xml中设置: 1)启用Cgro ...