首页 > 解决方案 > UWP 程序创建可供其他用户访问的网络共享文件夹的最佳方式是什么?

问题描述

所以我正在构建一个 UWP 程序,该当前模块需要能够创建一个可供所有用户使用的网络共享文件夹(也与 Windows IOT 设备兼容)。

我知道使用 Powershell 来做到这一点(目前这是我正在尝试的),但是我想确保这是我最好的做法。

任何指导将不胜感激。

旁注,我在 UWP 中构建它是因为我想为用户制作一个 gui 来构建一个配置文件,最终让某人更容易理解。

标签: c#.netuwp

解决方案


对于那些想知道我是否做到/正在寻找答案的人。

我最终选择了 powershell 路线(但据我了解,它也可以在 c# 中完成)。

这是我的一些示例代码

            using (var ps = PowerShell.Create())
        {
            ps.Runspace.SessionStateProxy.SetVariable("Path", @"C:\path-to-folder");
            ps.Runspace.SessionStateProxy.SetVariable("FPath", @"C:\path-to-folder\*foldername*");

            ps.AddScript("New-Item -Path $Path -Name \"*foldername*\" -ItemType \"directory\" -Force;"); 
            ps.AddScript("New-SmbShare -Name \"*foldername*\" -Path $FPath -FullAccess Everyone");


            ps.Invoke();
        }

        var newProcessInfo = new System.Diagnostics.ProcessStartInfo();
        newProcessInfo.FileName = @"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe";
        newProcessInfo.Verb = "runas";
        newProcessInfo.Arguments = "net user '*CustomUserName*' '*password*' /add; net localgroup 'Administrators' '*CustomUserName*' /add";

        System.Diagnostics.Process.Start(newProcessInfo);

所以这样做是添加一个文件夹并创建网络共享。然后它创建一个本地用户来绕过可以提示的(IIRC)UAC,然后使其成为管理员组的成员。

我这样做的原因是因为我需要一个远程设备来访问网络共享而不要求用户提供他们的帐户凭据,因此完全不干涉


推荐阅读