Назад | Перейти на главную страницу

Доступ к Exchange Server 2013 удаленно из Windows 7 с помощью PowerShell

Я пытаюсь получить удаленный доступ к Exchange Server 2013 с помощью PowerShell из Windows 7. Ниже приведен фрагмент кода, который я использую:

public static void ConnectToPowerShell()
{
        string password = "password";
        string userName = "Administrator";

        System.Uri uri = new Uri(@"http://ExchangeServer/powershell?serializationLevel=Full");
        System.Security.SecureString securePassword = String2SecureString(password);

        System.Management.Automation.PSCredential creds = new System.Management.Automation.PSCredential(userName, securePassword);

        Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace();

        PowerShell powershell = PowerShell.Create();
        PSCommand command = new PSCommand();
        command.AddCommand("New-PSSession");
        command.AddParameter("ConfigurationName", "Microsoft.Exchange");
        command.AddParameter("ConnectionUri", uri);
        command.AddParameter("Credential", creds);
        command.AddParameter("Authentication", "Default");
        PSSessionOption sessionOption = new PSSessionOption();
        sessionOption.SkipCACheck = true;
        sessionOption.SkipCNCheck = true;
        sessionOption.SkipRevocationCheck = true;
        command.AddParameter("SessionOption", sessionOption);

        powershell.Commands = command;

        try
        {
            // open the remote runspace
            runspace.Open();

            // associate the runspace with powershell
            powershell.Runspace = runspace;

            // invoke the powershell to obtain the results
            Collection<PSSession> result = powershell.Invoke<PSSession>();
            String str=null;
            foreach (ErrorRecord current in powershell.Streams.Error)
            {
                // Console.WriteLine("The following Error happen when opening the remote Runspace: " + current.Exception.ToString() +
                // " | InnerException: " + current.Exception.InnerException);
                str = "The following Error happen when opening the remote Runspace: " + current.Exception.ToString() +
                   " | InnerException: " + current.Exception.InnerException;
                MessageBox.Show(str);
            }
            if (result.Count != 1)
                throw new Exception("Unexpected number of Remote Runspace connections returned.");

            // Set the runspace as a local variable on the runspace
            powershell = PowerShell.Create();
...........................................
...........................................
}

В строке:

Collection<PSSession> result = powershell.Invoke<PSSession>();

Это дает следующее исключение:

При открытии удаленного пространства выполнения возникает следующая ошибка: System.Management.Automation.Remoting.PSRemotingTransportException: не удалось подключиться к удаленному серверу со следующим сообщением об ошибке: клиент WinRM не может обработать запрос. Клиент WinRM попытался использовать механизм проверки подлинности Negotiate, но конечный компьютер (rmex13: 80) вернул ошибку «Доступ запрещен». Измените конфигурацию, чтобы разрешить использование механизма аутентификации Negotiate, или укажите один из механизмов аутентификации, поддерживаемых сервером. Чтобы использовать Kerberos, укажите имя локального компьютера в качестве удаленного пункта назначения. Также убедитесь, что клиентский компьютер и конечный компьютер присоединены к домену. Чтобы использовать Basic, укажите имя локального компьютера в качестве удаленного пункта назначения, укажите обычную проверку подлинности и укажите имя пользователя и пароль. Возможные механизмы аутентификации, сообщаемые сервером: Для получения дополнительной информации см. Раздел справки about_Remote_Troubleshooting

Как я могу исправить этот тип исключения?