Utilisation de scripts vbs avec C# / Accès à distance via c$ avec C#
digitalseb
Messages postés8Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention16 janvier 2006
-
10 janv. 2006 à 09:19
bucherb
Messages postés412Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention13 août 2007
-
16 janv. 2006 à 17:18
Bonjour,
Je développe actuellement une application en langage C#, permettant d'effectuer diverses taches d'administration à distance au sein du réseau d'une entreprise, à partir d'un poste de contrôle vers les autres machines du réseau. Par exemple pour des raisons de place et de sécurité, cette application doit permettre à l'administrateur d'effacer automatiquement par pression sur un bouton les contenus des dossiers temp, cookies etc et chaque pc du réseau.
J'ai réussi à faire un script permettant par son exécution d'effacer le contenu d'un dossier mis en paramètre sur un ordinateur cible du réseau (à partir du poste d'administration via un accès c$), mais je l'ai fait en vbs car je ne trouvais pas comment faire un tel script en C#, et mon problème maintenant est d'intégrer ce script dans mon code C#... J'ai donc cherché comment je pourrais transcrire mon script vbs en C# mais ce dernier langage semble très très peu utilisé de cette façon ; j'ai également envisagé un autre moyen : simplement utiliser mes scripts vbs dans mon application C#, c'est-à-dire que le code inclu dans l'appli elle-même ne serait qu'une exécution d'un script externe, mais je ne sais pas comment faire surtout qu'il y a le paramètre "nom de la machine cible du réseau" qui est fixé dans l'appli et qui doit être pris en compte par le script vbs...
Voilà j'espère que mon énoncé est clair, si quelqu'un pouvait m'apporter son aide je lui en serait vraiment reconnaissant..
merci
digitalseb
Messages postés8Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention16 janvier 2006 10 janv. 2006 à 14:42
Merci beaucoup pour ton aide, en effet cette méthode m'a donné une idée : dans mon code C# je vais lancer la création d'un fichier .vbs en écriture dans lequel j'afficherai le script vbs qu'il me faut ; je pense que je pourrai ensuite l'exécuter par un Process.Start()...
en espérant que ça fonctionnera merci encore
digitalseb
Messages postés8Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention16 janvier 2006 10 janv. 2006 à 14:59
Merci à toi aussi burcherb mais je vais d'abord tester la première solution qui me paraît la plus simple et je regarderai ensuite ce que tu m'indiques si ce que je fais ne marche pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
digitalseb
Messages postés8Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention16 janvier 2006 11 janv. 2006 à 14:18
En fait le paramètre que j'utilise est le nom du pc, que l'administrateur du réseau sélectionne dans un combobox de l'interface C# (celui-ci contient en temps réel les noms de tous les pc du réseau connectés) : la question est comment puis-je faire passer ce paramètre qui est initialement dans mon code C# vers mon script vbs qui est un fichier à part...? car dans mon code C# tout ce que je fais pour lancer mon script vbs c'est un Process.Start("suppression.vbs") donc je vois pas à quel moment je peux transmettre le paramètre au script.
digitalseb
Messages postés8Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention16 janvier 2006 13 janv. 2006 à 14:42
Dans ma fonction en C# je mets :
Process.Start("supprCookies.vbs","machine");
j'ai bien vérifié que ma variable "machine" est pas vide à ce moment là, pourtant mon script vbs est incapable de simplement afficher le contenu de cette variable qui est pourtant censée lui être envoyée par la ligne ci-dessus ; cette écriture semble donc ne pas marcher, ou alors faut-il que je mette mon script entier sous la forme d'une fonction pour lui passer le paramètre? il est également à noter que j'ai un 2e paramètre à passer à mon script...l'écriture est-elle alors bien
Process.Start("supprCookies.vbs","machine,utilisateur");
?
digitalseb
Messages postés8Date d'inscriptionmardi 8 novembre 2005StatutMembreDernière intervention16 janvier 2006 16 janv. 2006 à 14:43
J'ai essayé avec Process.Start("supprCookies.vbs", machine) ; au début ça marchait pas, mais cela venait en fait de mon script vbs auquel je n'indiquais pas que la variable 'machine' venait de l'extérieur : j'ai donc instancié dans mon script vbs une variable 'arguments' de type 'WScript.Arguments' qui se comporte comme un tableau qui contient toutes les variables venant de l'extérieur, et maintenant ça marche.
Pourtant mon problème n'est pas vraiment résolu car j'ai 2 variables 'machine' et 'utilisateur' à faire passer à mon script, et cette méthode ne semble pas vouloir accepter de faire passer plus d'une variable :
Process.Start("supprCookies", machine, utilisateur); me renvoie l'erreur 'Aucune surcharge pour la méthode 'Start' ne prend d'arguments '3'
et
ProcessStartInfo startInfo = new ProcessStartInfo("supprCookies.vbs");
startInfo.Arguments = machine, utilisateur;
Process.Start(startInfo);
ne marche pas car le compilateur me réclame un ';' après 'machine' (il veut pas de ma 2e variable quoi).
A noter que ProcessStartInfo startInfo = new ProcessStartInfo("supprCookies.vbs");
startInfo.Arguments = machine;
startInfo.Arguments = utilisateur;
Process.Start(startInfo);
ne marche pas non plus...