2011-05-27 1 views
2

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.

Répondre

0

Vous ne travaillez pas avec ASP.NET mais peut-être que How to use the System.DirectoryServices namespace in ASP.NET peut expliquer votre problème.

Vous savez certainement, mais quand vous avez une erreur comme -2147016672, convertissez-le en hexa (0x80072020) et google le nom de Micosoft thechnologie et le code Hexa "Active-Directory 0x 80072020" pour l'aide en ligne sur le problème.

+0

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

Questions connexes