Bonjour à tous

ma config :

MS Exchange 2016
Visual Studio 2017

j'essai de lancer ce script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
set-executionpolicy unrestricted
Quand je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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