c# - UWP 程序创建可供其他用户访问的网络共享文件夹的最佳方式是什么?
问题描述
所以我正在构建一个 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,然后使其成为管理员组的成员。
我这样做的原因是因为我需要一个远程设备来访问网络共享而不要求用户提供他们的帐户凭据,因此完全不干涉
推荐阅读
- xamarin - Xamarin MvvmCross MvxAppCompatDialogFragment 失去 BindingContext
- javascript - React Router 4 嵌套路由不在 Props 中
- javascript - 如何在不使用密钥的情况下将 json 转换为数组
- optimization - 优化 SQL Server 中的分页查询
- sql - PostgreSQL:在嵌套 CASE WHEN 中使用文本参数会显着减慢查询速度
- assembly - db 程序集中字符串的最大长度
- reactjs - 在 Reactjs 中单击外部 url 时如何重定向到不同的组件?
- laravel - 跳过数组验证规则的第一个索引?
- mysql - 获取 django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错,同时尝试执行第一次迁移
- arrays - 在 React js 中过滤后分配一个常量