У вас есть разные опции:
getActivity()
, так как это Context
. getContext()
. Если вам не нужно поддерживать старые версии, перейдите к getContext()
.
Сообщение об ошибке дает вам больше всего того, что вам нужно. Речь идет не только о списке TrustedHosts; он говорит, что для использования IP-адреса с использованием схемы аутентификации по умолчанию вам также необходимо использовать HTTPS (который не настроен по умолчанию) и предоставить явные учетные данные. Я могу сказать, что вы по крайней мере не используете SSL, потому что вы не использовали переключатель -UseSSL.
Обратите внимание, что SSL / HTTPS не настроен по умолчанию - это дополнительный шаг, который вам придется брать. Вы не можете просто добавить -UseSSL.
Механизм аутентификации по умолчанию - это Kerberos, и он хочет видеть имена реальных хостов, как они появляются в AD. Не IP-адреса, а не DNS-имена CNAME. Некоторые люди включат базовую аутентификацию, которая менее придирчива, но вы также должны установить HTTPS, поскольку в противном случае вы передавали бы учетные данные в открытом виде. Включить-PSRemoting настраивает только HTTP.
Добавление имен в файл hosts не будет работать. Это не проблема разрешения имен; речь идет о том, как осуществляется взаимная аутентификация между компьютерами.
Кроме того, если оба компьютера, участвующие в этом соединении, не находятся в одном домене AD, механизм аутентификации по умолчанию не будет работать. Прочтите «help about_remote_troubleshooting» для получения информации о настройке недоменной и междоменной проверки подлинности.
Из документов в http://technet.microsoft.com/en-us/library/dd347642. aspx
HOW TO USE AN IP ADDRESS IN A REMOTE COMMAND
-----------------------------------------------------
ERROR: The WinRM client cannot process the request. If the
authentication scheme is different from Kerberos, or if the client
computer is not joined to a domain, then HTTPS transport must be used
or the destination machine must be added to the TrustedHosts
configuration setting.
The ComputerName parameters of the New-PSSession, Enter-PSSession and
Invoke-Command cmdlets accept an IP address as a valid value. However,
because Kerberos authentication does not support IP addresses, NTLM
authentication is used by default whenever you specify an IP address.
When using NTLM authentication, the following procedure is required
for remoting.
1. Configure the computer for HTTPS transport or add the IP addresses
of the remote computers to the TrustedHosts list on the local
computer.
For instructions, see "How to Add a Computer to the TrustedHosts
List" below.
2. Use the Credential parameter in all remote commands.
This is required even when you are submitting the credentials
of the current user.
Я проверяю ваше утверждение в своей инфраструктуре, IP-адрес не является проблемой для меня:
PS C:\Users\JPB> hostname
JPBCOMPUTER
PS C:\Users\JPB> Enter-PSSession -ComputerName 192.168.183.100 -Credential $cred
[192.168.183.100]: PS C:\Users\jpb\Documents>
[192.168.183.100]: PS C:\Users\jpb\Documents> hostname
WM2008R2ENT
Если вы пытаетесь работать через VPN, вам лучше посмотреть к настройкам брандмауэра на пути к вашему серверу. Установка и настройка для удаленного управления Windows могут помочь вам. Ожидается, что TCP-порт WinRM ожидает:
WinRM 1.1 и ранее: HTTP-порт по умолчанию - 80.
WinRM 2.0: HTTP-порт по умолчанию - 5985.
< hr>Отредактировано: В соответствии с вашей ошибкой вы можете протестировать это на компьютере youclient:
Set-Item WSMan:\localhost\Client\TrustedHosts *
Попробуйте сделать это:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force
Ребята дали простое решение, которое, должно быть, должно посмотреть на помощь - это хорошо, выглядит много, но на самом деле быстро читать:
get-help about_Remote_Troubleshooting | more