如何共享远程文件夹?

| 我正在研究.NET类,该类将用于管理我们的Active Directory帐户的工具中。我们的每个帐户都有一个网络主目录,该目录可以位于几个不同的服务器上,具体取决于我们使用的帐户类型。 我可以很好地创建和删除文件夹,但是在共享文件夹时遇到了麻烦。我在这里找到了一些似乎是我想要的代码,但对我来说却无法正常工作。我得到的返回值为2,但是我不确定这表明什么。 这不应该是文件权限问题,因为我以自己的身份运行测试应用程序,并且可以完全控制要共享的文件夹(及其每个父文件夹)。 这是我的(修改后的)代码版本:
char[] delim = { \'\\\\\' };
// folderPath is a string (UNC path)
string[] drivePath = folderPath.Split(delim); 

// Create a ManagementClass object
ManagementClass 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\"] = \"\";
inParams[\"Name\"] = drivePath[3];
inParams[\"Path\"] = folderPath;
inParams[\"Type\"] = 0x0; // Disk Drive

// Invoke the method on the ManagementClass object
outParams = managementClass.InvokeMethod(\"Create\", inParams, null);
我已经尝试输出其他outParams,但看来ReturnValue是我所能得到的。 是否有另一种共享远程文件夹的方式会更好?     
已邀请:
        我会回答自己,以防其他人稍后发现。 最后,我得到了使用PSExec和NET SHARE的极为性感的答案:
// Retrieve drive path from AD
char[] delim = { \'\\\\\' };
string[] drivePath = userAD.HomeDirectory.Split(delim);

// Configure startup properties of process
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.FileName = \"C:\\\\Windows\\\\System32\\\\psexec.exe\";

// Build arguments for folder on alpha or student
startInfo.Arguments = \"\\\\\\\\\" + serverName + \" -s net share \" + shareName + \"=\" folderPath + \"$ /GRANT:\\\"authenticated users\\\",full\";

Process process = new Process();

process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
请注意,在我们的环境中,该程序将已经在对共享文件夹具有完全控制权限的用户下运行。要允许非特权用户使用类似功能,必须在
startInfo.Arguments
中指定名称和密码。     

要回复问题请先登录注册