J'espère que c'est le bon endroit pour demander à un nouveau venu sur ce site :)
J'ai créé une interface graphique dans Visual Studio pour la création de nouveaux utilisateurs. Une partie du code appelle ensuite un script Powershell que j'ai utilisé pour la création d'utilisateurs.
Donc l'interface graphique fonctionne, je peux ajouter les utilisateurs à un fichier CSV qu'il crée et lance ensuite le script Powershell script.
Le problème que je rencontre est qu'une partie du script de Powershell charge le snapin d'exchange 2007. Pour une raison quelconque, lors de l'exécution du script via l'interface graphique que j'ai créée, il s'affiche toujours avec une erreur disant qu'il est incapable de trouver le plugin.
Donc, en gros, le code pour lancer le Powershell est le suivant. Maintenant, je ne suis pas du tout un codeur donc je pourrais m'y prendre de la mauvaise façon et ce pourrait être un peu le bordel hehe :)
Process p = new Process();
p.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);
// Redirect the output stream of the child process.
p.StartInfo.CreateNoWindow = false; (false for testing)
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = false; //(false for testing)
p.StartInfo.RedirectStandardOutput = false; //(false for testing)
p.StartInfo.RedirectStandardError = false; //(false for testing)
p.StartInfo.LoadUserProfile = true;
p.StartInfo.FileName = "This points to a file on a network share" @"\\server\folder\file";
p.Start();
p.BeginOutputReadLine();
Ce qui précède se produit après un clic sur un bouton et sera affiché dans une zone de texte dans l'interface graphique une fois que tout fonctionnera. Mais pour l'instant, j'ai désactivé ce côté des choses afin de pouvoir voir les erreurs dans Powershell.
Le message d'erreur dans Powershell est donc le suivant
Microsoft.exchange.management.powershell.admin n'est pas installé sur cet ordinateur.
Mais encore une fois, si je lance le script manuellement sans l'interface graphique, cela fonctionne bien. C'est comme si l'interface graphique le lançait dans un environnement fermé qui n'a pas accès à l'ordinateur sur lequel il s'exécute. Je suis probablement en train de rater quelque chose de simple car je n'ai vraiment aucune idée de la création d'applications c#.