J'essaie de configurer mon LyncServer via un WcfService qui lui-même fait PowerShell remoting pour exécuter des cmdlets sur la machine Lync. J'ai réussi à importer le module Lync, mais quand j'essaie d'appeler et de cmdlet Lync, par exemple. Get-CsUser je reçois une erreur dans powershell.Streams.Error:PowerShell Remoting Lync, erreur Active Directory "-2147016672" s'est produite lors de la recherche de contrôleurs de domaine
erreur Active Directory "-2147016672" a eu lieu lors de la recherche pour le contrôle de domaine de Lers dans le domaine "my.test.domain": "Une erreur d'opération a eu lieu"
Voilà comment je crée mon runspace:
PSCredential psCred = new PSCredential(this.Credentials.Domain + "\\" + this.Credentials.UserName, this.Credentials.SecurePassword);
WSManConnectionInfo wsman = new WSManConnectionInfo(uri, c_powerShellShema, psCred);
wsman.AuthenticationMechanism = AuthenticationMechanism.Default;
//wsman.AuthenticationMechanism = AuthenticationMechanism.Kerberos;
//wsman.ProxyAuthentication = AuthenticationMechanism.Negotiate;
Runspace retval = RunspaceFactory.CreateRunspace();//wsman);
retval.Open();
et mon powershell appelle
PowerShell powerShell = PowerShell.Create();
powerShell.Runspace = this.Runspace;
powerShell.AddScript("Import-Module Lync");
powerShell.Invoke();
powerShell.Streams.ClearStreams();
powerShell.AddScript("Get-CsUser);
powerShell.Commands.AddCommand("Out-String");
var retval = powerShell.Invoke();
foreach (var o in retval)
Console.WriteLine(o.ToString());
foreach (var e in powerShell.Streams.Error)
Console.WriteLine(e.ToString());
Toute idée? l'utilisateur qui est utilisé dans l'espace de lancement est le même utilisateur que j'ai utilisé pour faire toute la configuration de lync via la console de gestion de lync, donc il a toutes les autorisations d'accès dont il a besoin.
donc, pour bien comprendre: le pool d'applications de mon service WCF est un compte AD, et je crée aussi l'espace d'exécution powershell en tant qu'utilisateur AD, mais l'applet de commande script powershell est invoquée comme un utilisateur totalement différent, probablement celui qui n'a pas de privilèges sur l'AD. Donc, avant d'appeler une applet de commande, je dois exécuter une cmdlet impersonate (ou quelque chose) pour que le contexte soit correct. Ai-je raison? – esskar