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

Подключение к обмену через Powershell (Winrm)


После игры с базовыми планами Microsoft Azure MDM мне было запрещено использовать модуль Powershell для Exchange Online.
Я удалился один раз, и после нескольких перезагрузок и быстрой настройки все прошло хорошо. Но на этот раз я все еще не могу New-ExoPSSession, У меня больше нет идей по устранению этой проблемы.
Итак, я делаю:

Connect-ExchangeOnline -UserPrincipalName john.doe@thatnice.place

и получите:

New-ExoPSSession : Connecting to remote server outlook.office365.com failed with the 
following error message : The client cannot connect to the destination specified in the 
request. Verify that the service on the destination is running and is accepting requests. 
Consult the logs and documentation for the WS-Management service running on the 
destination, most commonly IIS or WinRM. If the destination is the WinRM service, run the 
following command on the destination to analyze and configure the WinRM service: "winrm 
quickconfig". For more information, see the about_Remote_Troubleshooting Help topic.
At C:\Program Files\WindowsPowerShell\Modules\ExchangeOnlineManagement\0.3582.0\ExchangeOnl
ineManagement.psm1:401 char:30

Я удалил своего пользователя и компьютер из всех профилей Azure и могу использовать эти команды на другом компьютере. Итак, я начал менять локальные объекты групповой политики, чтобы убедиться, что все на месте:

PS C:\WINDOWS\system32> winrm get winrm/config


возвращает:

Config
    MaxEnvelopeSizekb = 500
    MaxTimeoutms = 60000
    MaxBatchItems = 32000
    MaxProviderRequests = 4294967295
    Client
        NetworkDelayms = 30000
        URLPrefix = wsman
        AllowUnencrypted = true [Source="GPO"]
        Auth
            Basic = true [Source="GPO"]
            Digest = true [Source="GPO"]
            Kerberos = true
            Negotiate = true
            Certificate = true
            CredSSP = true [Source="GPO"]
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        TrustedHosts = * [Source="GPO"]
    Service
        RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
        MaxConcurrentOperations = 4294967295
        MaxConcurrentOperationsPerUser = 1500
        EnumerationTimeoutms = 240000
        MaxConnections = 300
        MaxPacketRetrievalTimeSeconds = 120
        AllowUnencrypted = true [Source="GPO"]
        Auth
            Basic = true [Source="GPO"]
            Kerberos = true
            Negotiate = true
            Certificate = false
            CredSSP = true [Source="GPO"]
            CbtHardeningLevel = Relaxed
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        IPv4Filter = * [Source="GPO"]
        IPv6Filter = * [Source="GPO"]
        EnableCompatibilityHttpListener = true [Source="GPO"]
        EnableCompatibilityHttpsListener = true [Source="GPO"]
        CertificateThumbprint
        AllowRemoteAccess = true [Source="GPO"]
    Winrs
        AllowRemoteShellAccess = true
        IdleTimeout = 7200000
        MaxConcurrentUsers = 2147483647
        MaxShellRunTime = 2147483647
        MaxProcessesPerShell = 2147483647
        MaxMemoryPerShellMB = 2147483647
        MaxShellsPerUser = 2147483647


и

  PS C:\WINDOWS\system32> winrm enumerate winrm/config/listener


возвращает:

Listener [Source="GPO"]
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 10.10.16.63, 127.0.0.1, 169.254.1.145, 169.254.5.162, 169.254.175.225, 169.254.235.174,<a lot of IPv6>

Listener [Source="Compatibility"]
    Address = *
    Transport = HTTP
    Port = 80
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 10.10.16.63, 127.0.0.1, 169.254.1.145, 169.254.5.162, 169.254.175.225, 169.254.235.174, <a lot of IPv6>

Listener [Source="Compatibility"]
    Address = *
    Transport = HTTPS
    Port = 443
    Hostname = ooo-VASCO
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 10.10.16.63, 127.0.0.1, 169.254.1.145, 169.254.5.162, 169.254.175.225, 169.254.235.174, ::1, <a lot of IPv6>


в

PS C:\WINDOWS\system32> Get-Item WSMan:\localhost\Client\TrustedHosts


показывает:

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Client

Type            Name                           SourceOfValue   Value
----            ----                           -------------   -----
System.String   TrustedHosts                   GPO             *


Программа просмотра событий сохраняет это:

Идентификатор события 11: Вызов API WSMan :: Создание оболочки WSMan с ResourceUri: http://schemas.microsoft.com/powershell/Microsoft.Exchange и ShellId: бла-бла-бла

Событие с кодом 254: :: Передача активности

Идентификатор события 161: проверка подлинности пользователя :: клиент не может подключиться к месту назначения, указанному в запросе. Убедитесь, что служба в пункте назначения работает и принимает запросы. Просмотрите журналы и документацию для службы WS-Management, работающей в месте назначения, чаще всего IIS или WinRM. Если местом назначения является служба WinRM, выполните следующую команду в месте назначения, чтобы проанализировать и настроить службу WinRM: «winrm quickconfig».


даже сделал

C:\WINDOWS\system32>winrm invoke Restore winrm/Config 
Restore_OUTPUT



(редактировать)
и да, id сделал:> winrm quickconfig несколько раз во время устранения неполадок, но результат:
WinRM service is already running on this machine.
WinRM is already set up for remote management on this computer.

(другое редактирование)
С другим профилем на том же компьютере соединение не работает.
Используя того же пользователя на новом компьютере, соединение успешно.


(редактировать после тестирования на другом компьютере)
Мне удалось применить те же ограничительные политики MDM на другом устройстве и вернуть их обратно.
другое устройство подключается с базовой аутентификацией, но проблемное устройство по-прежнему не выполняет аутентификацию, даже если для него установлено значение true, как показано в текущей конфигурации:

PS C:\Windows\System32> winrm get winrm/config
Config
    MaxEnvelopeSizekb = 500
    MaxTimeoutms = 60000
    MaxBatchItems = 32000
    MaxProviderRequests = 4294967295
    Client
        NetworkDelayms = 5000
        URLPrefix = wsman
        AllowUnencrypted = false [Source="GPO"]
        Auth
            Basic = true [Source="GPO"]
            Digest = false [Source="GPO"]
            Kerberos = true
            Negotiate = true
            Certificate = true
            CredSSP = false
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        TrustedHosts
    Service
        RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
        MaxConcurrentOperations = 4294967295
        MaxConcurrentOperationsPerUser = 1500
        EnumerationTimeoutms = 240000
        MaxConnections = 300
        MaxPacketRetrievalTimeSeconds = 120
        AllowUnencrypted = false [Source="GPO"]
        Auth
            Basic = true [Source="GPO"]
            Kerberos = true
            Negotiate = true
            Certificate = false
            CredSSP = false
            CbtHardeningLevel = Relaxed
        DefaultPorts
            HTTP = 5985
            HTTPS = 5986
        IPv4Filter = *
        IPv6Filter = *
        EnableCompatibilityHttpListener = false
        EnableCompatibilityHttpsListener = false
        CertificateThumbprint
        AllowRemoteAccess = true
    Winrs
        AllowRemoteShellAccess = true
        IdleTimeout = 7200000
        MaxConcurrentUsers = 2147483647
        MaxShellRunTime = 2147483647
        MaxProcessesPerShell = 2147483647
        MaxMemoryPerShellMB = 2147483647
        MaxShellsPerUser = 2147483647


Может ли кто-нибудь поделиться с этим путем?

Изменить: просто перешел на PS7, и ошибка немного изменилась:

New-ExoPSSession: C:\Program Files\WindowsPowerShell\Modules\ExchangeOnlineManagement\0.3582.0\ExchangeOnlineManagement.psm1:401
Line |
 401 |  … PSSession = New-ExoPSSession -ExchangeEnvironmentName $ExchangeEnviro …
     |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Could not load type 'System.Security.Cryptography.SHA256Cng' from assembly 'System.Core,
     | Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'..

.

Во-первых, для включения базовой аутентификации в WinRM служба WinRM должна находиться в рабочем состоянии. Чтобы запустить службу WinRM, запустите командную строку от имени администратора и выполните следующую команду

Winrm quickconfig

Вы настраивали MFA? Если да, вы можете отключить его для тестирования. Подтвердите, можете ли вы подключиться к Exchange Online PowerShell с помощью обычных командлетов ниже: https://technet.microsoft.com/en-us/library/jj984289(v=exchg.160).aspx

Ссылка: https://social.technet.microsoft.com/Forums/en-US/5d006906-c4f6-4929-9cb1-93339eef7cf0/exchange-online-error-identifier-is-not-in-a-valid-session-state- на-удаленном-компьютере? forum = onlineservicesexchange

Это может быть связано с тем, что служба winrm не запущена. Выполните командлет ниже в командной строке, чтобы запустить службу WinRM.

Winrm quickconfig

а затем попробуйте подключить Exchange Online.