Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';UWP程序创建其他用户可以访问的网络共享文件夹的最佳方式是什么?_C#_.net_Uwp - Fatal编程技术网

C# 什么';UWP程序创建其他用户可以访问的网络共享文件夹的最佳方式是什么?

C# 什么';UWP程序创建其他用户可以访问的网络共享文件夹的最佳方式是什么?,c#,.net,uwp,C#,.net,Uwp,因此,我正在构建一个UWP程序,在该程序中,当前模块需要能够创建一个可供所有用户使用的网络共享文件夹(也与windows IOT设备兼容) 我知道使用Powershell可以做到这一点(目前我正在尝试这一点),但我想确保这是我最好的做法 任何指导都将不胜感激 旁注,我在UWP中构建它是因为我想为用户制作一个gui,以便构建一个配置文件,最终让人更容易理解。对于那些想知道我是否这样做了/寻找答案的人来说 我最终选择了powershell路线(但据我所知,这也可以在c#中实现) 下面是我的一些示例代

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

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

任何指导都将不胜感激


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

对于那些想知道我是否这样做了/寻找答案的人来说

我最终选择了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(可以提示),然后使其成为管理组的成员


我这样做的原因是因为我需要一个远程设备来访问网络共享,而无需询问用户的帐户凭据,因此对于那些想知道我是否这样做了/正在寻找答案的人来说,这完全不需要干涉

我最终选择了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(可以提示),然后使其成为管理组的成员


我之所以这样做,是因为我需要一个远程设备来访问网络共享,而无需向用户询问他们的帐户凭据,因此完全不需要使用TCP IP。或者找到一个套接字库。。。基本上创建元数据传输和传输文件数据的流。你甚至可以通过UWP应用程序托管一个站点。。。使用HTTP协议。@visc好的,我来看看!谢谢TCP IP。或者找到一个套接字库。。。基本上创建元数据传输和传输文件数据的流。你甚至可以通过UWP应用程序托管一个站点。。。使用HTTP协议。@visc好的,我来看看!谢谢