using System;
using System.IO;
using System.Linq;
namespace CreateDirectoryTest {
internal class Program {
public static void Main(string[] args) {
if (!args.Any()) {
Console.WriteLine("Error: Usage: CreateDirectoryTest.exe {paths}");
}
foreach (var arg in args) {
try {
Console.WriteLine("Need to create the folder? " + arg + " (y/n)");
var input = Console.ReadLine();
if (input != null && input.Equals("n")) {
continue;
}
Directory.CreateDirectory(arg);
} catch (Exception e) {
Console.WriteLine("Error Creating directory: " + arg);
Console.WriteLine(e);
}
}
}
}
}
Приведенный выше код создает исполняемый файл CreateDirectoryTest.exe и был протестирован на сервере win 2016 и 10 настольных компьютерах соответственно.Например: CreateDirectoryTest.exe \\\ip-address\data\testFolder
\\ ip-address \ data \ testFolder - это сетевой ресурс в файловой системе Linux, и для связи используется протокол SMB.
Вышеупомянутый процесс был выполнен с правами администратора и системы (NT Authority)./ SYSTEM) соответственно в обеих операционных системах, но это не дает результатов на сервере win 2016 для сценария выполнения системного пользователя со следующей ошибкой:
Error Creating directory: \\ip-address\data\testFolder
System.IO.IOException: The specified server cannot perform the requested operation.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost)
at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost)
at System.IO.Directory.CreateDirectory(String path)
at CreateDirectoryTest.Program.Main(String[] args)
Может кто-нибудь предложить решение для решения этой проблемы на win-сервере2016?
Примечание: сервер Windows 2016 не зарегистрирован в домене, а Windows 10 зарегистрирована и имеет доменное имя