Как мне запустить удаленные сценарии PowerShell?Enable-PSRemoting не работает - PullRequest
0 голосов
/ 07 декабря 2018

Мы оба в одном домене, и я включил PSRemoting на обеих машинах, но по некоторым причинам мои удаленные сценарии не запускаются.Политика выполнения не ограничена, но вот сообщения, которые я получаю:

Get-Process : Couldn't connect to remote machine.
At line:1 char:1
+ Get-Process -ComputerName 10.xxx.xx.xx
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-Process], InvalidOperationException
    + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.PowerShell.Commands.GetProcessCommand

Get-EventLog : The network path was not found.
At line:1 char:1
+ Get-EventLog -LogName Application -ComputerName 10.xxx.xx.xx
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Get-EventLog], IOException
    + FullyQualifiedErrorId : System.IO.IOException,Microsoft.PowerShell.Commands.GetEventLogCommand

Я использую PSVersion 5.1 и PSRemotingProtocolVersion 2.3 на обеих машинах, есть ли у кого-нибудь какие-либо предложения?

ПослеВ ходе дополнительных исследований я включил удаленное управление сервером (WinRM) и разрешил удаленный доступ к PowerShell на обеих машинах, и он по-прежнему выдает те же сообщения об ошибках, что и выше, для этих базовых командлетов, приведенных выше, НО это позволит мне войти в сеанс на удаленной машине с помощью Enter-PSSession.Я в недоумении, потому что обходной путь приличный, но в идеале я хотел бы на самом деле запускать сценарии удаленно.

1 Ответ

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

Если вы можете использовать Enter-PSSession, то PSRemoting работает просто отлично.Однако ни Get-Process, ни Get-EventLog не используют PSRemoting для удаленных подключений.Вы можете проверить это, проверив сетевой трафик с помощью таких инструментов, как Wireshark или WinDump .Для работы командлетов необходим доступ к портам 139 / tcp (сеанс NetBIOS) и 445 / tcp (DirectSMB) на удаленном хосте.Эти порты, вероятно, заблокированы в брандмауэре Windows на удаленном хосте, поэтому вам нужно изменить его, чтобы разрешить удаленные подключения к этому хосту.

Если вы хотите использовать PSRemoting, вам нужно локально вызывать командлеты на удаленном хосте.хост через Invoke-Command:

Invoke-Command -Computer 10.x.x.x -ScriptBlock {
    Get-Process
    Get-EventLog -LogName Application
}
...