Fondamentalement, je suis nouveau à WMI et je ne peux pas comprendre ce que je suis absent ici ou comment déboguer ce ...InvalidOperationException lorsque vous appelez des méthodes sur l'objet WMI
ConnectionOptions connectOptions = new ConnectionOptions();
connectOptions.Username = user;
connectOptions.Password = password;
machine = "remoteMachine.com";
ManagementScope scope = new ManagementScope(
@"\\" + machine + @"\root\cimv2",
connectOptions);
scope.Connect();
ManagementPath path = new ManagementPath(@"\\" + machine + @"\root\cimv2\Win23_Process");
ManagementClass proc = new ManagementClass(scope, path, new ObjectGetOptions());
ManagementBaseObject args = proc.GetMethodParameters("Create");
Cette dernière ligne, où j'appelle une méthode sur proc, provoque cette InvalidOperationException ... ne me dit pas trop :(J'obtiens le même résultat lors de l'appel d'autres méthodes sur proc, comme GetInstances(). Lors du débogage à travers le code, il semble que je peux se connecter à la machine distante. avec succès
System.InvalidOperationException was unhandled
Message="Operation is not valid due to the current state of the object."
Source="System.Management"
StackTrace:
at System.Management.ManagementObject.GetMethodParameters(String methodName, ManagementBaseObject& inParameters, IWbemClassObjectFreeThreaded& inParametersClass, IWbemClassObjectFreeThreaded& outParametersClass)
at System.Management.ManagementObject.GetMethodParameters(String methodName)
Eh bien c'est un échec majeur :(+1 pour la programmation par paire! – noctonura
C'est la moitié de la réponse.L'autre problème est que je devais utiliser un chemin relatif pour ManagementPath puisque le chemin de base est déjà spécifié dans le ManagementScope – noctonura
Je pensais que cela paraissait un peu suspect, mais je n'étais pas sûr que ce soit valide ou non. WMI, mais vous pouvez essayer Powershell, c'est un peu plus facile pour les doigts. –