Création d'actions échoue avec l'erreur 9 programme
Question
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());
}
}
Je suis en utilisant le code suivant pour mettre en place une action, mais je suis toujours obtenir une valeur de retour de 9 ce qui signifie nom invalide. Je passe une chaîne et ont essayé d'utiliser une chaîne explicite et je reçois toujours l'erreur 9.
Je crée la part à distance plutôt que sur la machine locale cependant. J'ai essayé de vous assurer que je me connecte au fournisseur WMI à distance, mais je ne suis pas sûr si je l'ai réussi.
Toutes les suggestions de gourous et d'autres WMI est grandement apprécié.
La solution
trouvé la réponse sur un autre site. Le chemin du dossier doit être le chemin d'accès local à la machine, la part est créée sur, pas un chemin UNC comme j'utilisais.
Autres conseils
J'ai eu la même erreur. Dans mon cas, si le problème était une barre oblique inverse. Faire directoryPath.TrimEnd ( '\') a résolu le problème.
Valeurs de retour
Renvoie l'une des valeurs du tableau suivant ou toute autre valeur pour indiquer une erreur. 0 - Succès
2 - Accès refusé
8 - Panne inconnue
9 - Nom non valide
10 - Niveau non valide
21 - Paramètre invalide
22 - part en double
23 - chemin Redirigé
24 - Périphérique inconnu ou répertoire
25 - Nom net not found