Создание долей программно выполняется с ошибкой 9

StackOverflow https://stackoverflow.com/questions/2579266

  •  24-09-2019
  •  | 
  •  

Вопрос

ObjectGetOptions options = new ObjectGetOptions();
 ManagementPath p = new ManagementPath("\\\\server01\\root" + "\\cimv2:Win32_Share");

// Make a connection to a remote computer.
ManagementScope scope = new ManagementScope("\\\\server01\\root\\cimv2");
scope.Connect();


// Create a ManagementClass object
ManagementClass managementClass = new ManagementClass(scope, p, options);
// Create ManagementBaseObjects for in and out parameters
ManagementBaseObject inParams = managementClass.GetMethodParameters("Create");
ManagementBaseObject outParams;
// Set the input parameters
//inParams["Description"] = String.Empty;
inParams["Name"] = "test";
inParams["Path"] = @folderPath;
inParams["Type"] = 0x0; // Disk Drive
// Invoke the method on the ManagementClass object
outParams = managementClass.InvokeMethod("Create", inParams, null);
// Check to see if the method invocation was successful
if ((uint)(outParams.Properties["ReturnValue"].Value) != 0)
{
      throw new Exception("Unable to share directory.  Error code: " + outParams.Properties["ReturnValue"].Value);
}
}
catch (Exception e)
{
    MessageBox.Show(e.Message.ToString());
}
}

Я использую следующий код, чтобы настроить долю, но я всегда получаю возвращаемое значение 9, что означает неверное имя. Я передаю строку и попытался использовать явную строку, и я все еще получаю ошибку 9.

Я создаю долю удаленно, а не на местной машине. Я пытался убедиться, что я подключаюсь к удаленному провайдеру WMI, но я не уверен, если бы я был успешным.

Любые предложения от WMI Guurus и других очень ценятся.

Это было полезно?

Решение

Нашел ответ на другом сайте. Путь папки должен быть локальным путем к машине, на которой создается доля, а не UNC-путь, как я использовал.

Другие советы

У меня была та же ошибка. В моем случае, хотя проблема была задней задней челкой. Делая DirectoryPath.trimend ('') решил проблему.

Возвратные значения

Возвращает одно из значений в следующей таблице или любое другое значение, чтобы указать ошибку. 0 - успех

2 - доступ запрещен

8 - Неизвестный провал

9 - Неверное имя

10 - Неверный уровень

21 - Неверный параметр

22 - Дубликат доля

23 - перенаправленный путь

24 - неизвестное устройство или каталог

25 - Net Name не найдено

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top