У нас есть домены: NT1 и NT2.
У нас есть приложение C#, которое вызывает командлеты Powershell на сервере Exchange (домен NT2). Он использует учетные данные NT2 \ User .
Отрывок:
using System.Management.Automation;
using System.Management.Automation.Runspaces;
...
var connectionInfo = nw WSManConnectionInfo(
exchangeUri,
"http://schemas.microsoft.com/powershell/Microsoft.Exchange",
new PSCredential(nt2User, password));
connectionInfo.SkipRevocationCheck = true;
connectionInfo.SkipCACheck = true;
connectionInfo.SkipCNCheck = true;
using var runspace = RunspaceFactory.CreateRunspace(connectionInfo);
runspace.Open();
using var pipeline = runspace.CreatePipeline();
pipeline.Commands.AddScript("Set-User -Identity Contoso\Jill -DisplayName Jill");
pipeline.Invoke();
Все нормально, когда я просто запускаю это приложение на своем компьютере (домен NT1).
Он перестает работать, когда приложение развернуто на сервере в домене NT1 и размещено в IIS. Пул приложений IIS настроен с идентификатором домена NT1 ( NT1 \ User ).
Он выдает исключение System.Management.Automation.Remoting.PSRemotingTransportException в System.Managemnt.Automation.RemoteRunspace.Open ( ):
Connecting to remote server mail.test.brightfulsolutions.com failed with the following error message: Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.
Похоже, что пользователь NT1 \ User, удостоверяющий личность пула приложений IIS, и предполагаемый пользователь Powershell NT2 \ User конфликтуют, но не уверены, что с этим делать.
Любые предложения (код, конфигурация сервера) приветствуются.