Bonjour à tous
ma config :
MS Exchange 2016
Visual Studio 2017
j'essai de lancer ce script :
Enable-MailBox -Identity PJ01 -Alias Patrick.JEAN@ATASH.FR -Database DIVERS
dans du code C#. Comme vous l'aurez compris c'est la création d'une boîte aux lettres Exchange pour un compte utilisateur existant.
(Quand je tape ce script en direct sur mon serveur exchange cela fonctionne.
Pour cela j'ai crée cette fonction :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
private static bool ExecuterUnScriptSurLeServeurExchange(string ScriptPowerShellAExecuter)
{
try
{
string Script = string.Empty;
Script = "$MotDePasse = convertto-securestring \"" + LesParametres.MotDePasseAdministrateur + "\" -asplaintext -force";
Script = Script + "\r $Profil = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList " + LesParametres.ProfilAdministrateur + ",$MotDePasse";
Script = Script + "\r $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri Http://" + LesParametres.NomDuServeurDeMessagerie + "/POWERSHELL -Credential $Profil";
Script = Script + "\r Import-PSSession $Session";
Script = Script + "\r" + ScriptPowerShellAExecuter;
//Creation Espace PowerShell sur le serveur WEB
Runspace Espace = RunspaceFactory.CreateRunspace();
//Ouverture
Espace.Open();
RunspaceInvoke runSpaceInvoker = new RunspaceInvoke(Espace);
//Creation Pipeline et envois du script
Pipeline UnPipeline = Espace.CreatePipeline();
UnPipeline.Commands.AddScript(Script);
UnPipeline.Commands.Add("Out-String");
UnPipeline.Invoke();
//Fermeture
Espace.Close();
//Fermeture & Nettoyage
Espace.Close();
//Resultats.Clear();
UnPipeline.Dispose();
Espace.Dispose();
return true;
}
catch (Exception Erreur)
{
Journalisation("Bug - Erreur PowerShell.cs - Fonction ExecuterUnScriptSurLeServeurExchange()", Erreur.ToString(), 0);
throw Erreur;
}
} |
L'objectif , c'est de l'utiliser sur un serveur IIS. En son temps , elle fonctionnait, mais depuis que nous avons migré vers Exchange 2016 .
J'ai cette erreur :
Impossible de charger les fichiers car l’exécution des scripts est désactivée sur ce système. Fournissez un certificat valide avec lequel signer les fichiers.
j'ai fait des recherches et j'ai activé l'exécution des scripts PowerShell
en tapant cela :
set-executionpolicy unrestricted
Quand je fais :
GET-EXECUTIONPOLICY -LIST
j'obtiens :
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Unrestricted
LocalMachine Unrestricted
Quelqu'un peut 'il me dépanner ?
Merci d'avance ...
Patrick
Partager