Для тех, кто интересуется, сделал ли я это / искал ответ.
В итоге я пошел по пути 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, который может быть предложен, а затем делает его членом группы администраторов.
Причина, по которой я делаю это таким образом, заключается в том, что мне нужноудаленное устройство для доступа к общему сетевому ресурсу, не запрашивая у пользователя учетные данные учетной записи, что делает его полностью автоматическим