Командлеты Exchange при вызове с удаленного компьютера - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть один сервер Exchange и машина Windows 7.

Удаленное выполнение WRT

Сервер - Exchange Server (Win server 2012) Клиент - машина Win 7

Iхотите запускать сценарии, которые присутствуют на клиентском компьютере на удаленном компьютере (сервер exchange / win 2012).Но они не работают, командлеты с ошибками не найдены.

Итак, чтобы проверить это быстро, я попытался вызвать обычные командлеты powershell, а также командлеты Exchange и обнаружил, что только командлеты Exchange работают с ошибками.Однако, если я запускаю тот же командлет на сервере (exchange), он дает ожидаемый результат.

Вопросы

  1. Не будут ли работать командлеты обмена в удаленном PowerShell?
  2. Iпробовал с другим типом сеанса с сервером обмена в качестве URL-адреса соединения, но также с ошибками там.

Прикрепленный ниже пример тестовых результатов.

Помогите мне, как продолжить !!

На удаленном клиенте (машина с Win 7)

PS C:\Users\Administrator> invoke-command -Session $session -ScriptBlock { ls }

возвращает:

Directory: C:\Users\Administrator\Documents

Mode        LastWriteTime       Length Name        PSComputerName
----        -------------        ------ ----        --------------
d-----      12/2/2018  12:10 PM  WindowsPowerShell  10.76.68.251

Но командлеты Exchange не работают

PS C:\Users\Administrator> invoke-command -Session $session -ScriptBlock { Get-Mailbox }
The term 'Get-Mailbox' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
    + CategoryInfo          : ObjectNotFound: (Get-Mailbox:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
    + PSComputerName        : 10.76.68.251

Сервер - Exchange / Server 2012

PS C:\Users\Administrator\Downloads\custom scripts> Get-Mailbox

Name                      Alias                ServerName       ProhibitSendQuota
----                      -----                ----------       -----------------
Administrator             Administrator        win-j1uti0rc7qp  Unlimited
DiscoverySearchMailbox... DiscoverySearchMa... win-j1uti0rc7qp  50 GB (53,687,091,200 bytes)

Тест с URL-адресом сервера Exchange в URI подключения

Тест 1

PS C:\Users\Administrator> $session1 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://10.76.68.251/PowerShell/ -Authentication Kerberos -Credential $credential

Ошибка:

New-PSSession : [10.76.68.251] Connecting to remote server 10.76.68.251 failed with the following error message : The
WinRM client cannot process the request. Kerberos authentication cannot be used when the destination is an IP address.
Specify a DNS or NetBIOS destination or specify Basic or Negotiate authentication. For more information, see the
about_Remote_Troubleshooting Help topic.

At line:1 char:13
+ $session1 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri h ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo: OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : -2144108277,PSSessionOpenFailed

Тест 2

PS C:\Users\Administrator> $session1 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://10.76.68.251/PowerShell/  -Credential $credential

Ошибка:

New-PSSession : [10.76.68.251] Connecting to remote server 10.76.68.251 failed with the following error message : The
WinRM client cannot process the request. It cannot determine the content type of the HTTP response from the
destination computer. The content type is absent or invalid. For more information, see the
about_Remote_Troubleshooting Help topic.
At line:1 char:13
+ $session1 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri h ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession],PSRemotingTransportException
    + FullyQualifiedErrorId : -2144108297,PSSessionOpenFailed

1 Ответ

0 голосов
/ 23 декабря 2018

Да, это так, это обычная практика, но то, что вы делаете, недостаточно полно.

  1. PSRemoting должен быть правильно включен.
  2. Вы должны передать учетные данные учетной записи, которая является администратором на коробке и администратора в Exchange

Вы должны использовать PSRemoting, чтобы сделать это, и это хорошо задокументировано Microsoft дляне только Exchange на выпускной, но и Exchange Online.

Подключение к серверам Exchange с помощью удаленного PowerShell

Connect-O365 1.5.4

Если вы используете PowerShell ISE, вы можете использовать любой из этих подходов, просто не забудьте нажать эту кнопку «Обновить» на вкладках «Команды», чтобы увидеть отраженные командлеты.

Как загрузить ExchangeКомандная консоль в PowerShell ISE

Добавление элементов Exchange Shell в PowerShell ISE

$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add(
    "Connect to Exchange @ Contoso", {
        $ExSession= New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exserver.contoso.com/PowerShell/ -Authentication Kerberos
        Import-PSSession $ExSession
    },
    "Control+Alt+1"
)
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add(
    "Connect to Exchange On-Premise", {
        Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
        . $env:ExchangeInstallPath\bin\RemoteExchange.ps1
        Connect-ExchangeServer –auto
            },
    "Control+Alt+2"
)
$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add(
    "Connect to Exchange Online", {
        $o365Cred= Get-Credential
        $o365Session= New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $o365Cred -Authentication Basic -AllowRedirection
        Import-PSSession $o365Session
    },
    "Control+Alt+3"
)

Если вы используете консольный хост, просто удалите все компоненты ISE.

$ExSession= New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exserver.contoso.com/PowerShell/ -Authentication Kerberos
Import-PSSession $ExSession
...