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());
}
}
Estoy utilizando el siguiente código para configurar una acción, pero siempre obtengo un valor de retorno de 9, lo que significa que el nombre no es válido. Estoy pasando una cadena y he intentado utilizar una cadena explícita y todavía obtengo el error 9.La creación de acciones falla programáticamente con error 9
No obstante, estoy creando el recurso compartido de forma remota en lugar de en la máquina local. He intentado asegurarme de que me estoy conectando al proveedor de WMI remoto, pero no estoy seguro de si he tenido éxito.
Cualquier sugerencia de los gurús de WMI y otros es muy apreciada.
Gracias por compartir – MichaelS
A menos que el camino es la raíz de una unidad, por ejemplo, DO:\. Entonces la barra invertida es requerida. –