programing

ip-address를 대상으로 하는 Powershell 원격화

newstyles 2023. 10. 11. 20:33

ip-address를 대상으로 하는 Powershell 원격화

서버 2008 R2에서 PSR Moting을 성공적으로 활성화했습니다.동일한 네트워크 내에서 호스트 이름을 대상으로 원격 세션을 수행할 수 있습니다.

네트워크 내 또는 다른 네트워크(예: VPN을 통해)에서 IP-Address를 대상으로 사용하려고 할 때 실패합니다.호스트 이름이 해결되지 않아 IP-Address를 사용해야 하는 VPN 연결을 통해 원격을 사용할 수 있기를 원합니다.

클라이언트에 같은 dns-name을 가진 다른 서버가 몇 개 있고 name-ip-address-association을 제거하고 삽입하고 싶지 않기 때문에 hosts-file에 이름을 추가하고 싶지 않습니다.

IP를 통해 psremote-target을 호출할 수 있는 방법을 알려주시면 좋겠습니다.

편집: 좀 더 구체적으로 말하자면, 나는 이것을 실행할 수 있기를 원합니다:

Enter-PSSession -Computername 192.168.123.123 -credentials $cred 

"을"에 이름을 해야 이 수 .-Computername"

편집2:
에서) 이름 대신 ip를 오류 에서) ip다신입니다.

Enter-PSSession : Connecting to remote server failed with the following error message : The WinRM client cannot process
 the request. Default authentication may be used with an IP address under the following conditions: the transport is HT
TPS or the destination is in the TrustedHosts list, and explicit credentials are provided. Use winrm.cmd to configure T
rustedHosts. Note that computers in the TrustedHosts list might not be authenticated. For more information on how to se
t TrustedHosts run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting
 Help topic.

3:
WSMan의 신뢰할 수 있는 호스트 설정에 대해서는 알고 있지만, 그것은 문제가 되지 않는 것 같습니다.이미 "*"로 설정되어 있지만(원격을 활성화한 직후에 이 작업을 수행했습니다) ip를 target-computername으로 사용하여 해당 서버에 연결할 수는 없지만 호스트 이름을 target-computername으로 사용하여 연결할 수는 있습니다.IIS에는 호스트 이름 대신 ip-number를 대상으로 하는 요청을 청취자가 들을 수 없도록 하는 바인딩과 같은 것이 있는 것 같습니다.그러나 IIS가 설치되어 있지 않습니다.그런 환경을 어디서 찾아야 할지 모르겠습니다.

업데이트 2011-07-12:
네, 신뢰할 수 있는 호스트 설정은 문제가 되지 않는 것 같습니다. DC에서 호스트 이름을 통해 연결할 수 있지만 컴퓨터 파라미터에 목적지의 ip-address를 사용할 경우에는 연결할 수 없기 때문입니다.
제 생각에는, 문제는 듣는 사람일 것입니다.수신자가 destination-host name 대신 destination-ip 대상인 요청을 받지 않을 수도 있습니다.하지만 그걸 어떻게 바꾸어야 할지 모르겠어요.

오류 메시지는 필요한 대부분의 것을 제공합니다.이것은 단지 신뢰받는 자들에 관한 것이 아닙니다.호스트 목록: 기본 인증 방식으로 IP 주소를 사용하려면 HTTPS(기본적으로 구성되지 않음)를 사용하고 명시적 자격 증명을 제공해야 합니다.적어도 SSL을 사용하지 않는 것은 알 수 있습니다. -UseSSL 스위치를 사용하지 않았기 때문입니다.

SSL/HTTPS는 기본적으로 구성되어 있지 않습니다. 이는 추가적인 단계입니다.-SSL을 추가할 수 없습니다.

기본 인증 메커니즘은 Kerberos이며 AD에 나타나는 실제 호스트 이름을 보기를 원합니다.IP 주소, DNS CNAME 닉네임이 아닙니다.일부 사용자들은 덜 까다로운 기본 인증을 사용할 수 있지만, 그렇지 않으면 인증 정보를 일반 텍스트로 전달할 수 있으므로 HTTPS도 설정해야 합니다.Enable-PSRemoting은 HTTP만 설정합니다.

호스트 파일에 이름을 추가해도 작동하지 않습니다.이것은 이름 해결의 문제가 아니라 컴퓨터 간의 상호 인증이 수행되는 방법에 관한 것입니다.

또한 이 연결에 포함된 두 컴퓨터가 동일한 AD 도메인에 있지 않으면 기본 인증 메커니즘이 작동하지 않습니다.도메인이 아닌 인증 및 도메인 간 인증 구성에 대한 자세한 내용은 "helpabout_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.

이 작업을 수행해 보십시오.

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force

저는 제 인프라에서 당신의 주장을 테스트합니다. 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 Remote Management용 설치구성이 도움이 됩니다.WinRM이 대기 중인 TCP 포트는 다음과 같습니다.

WinRM 1.1 이전 버전:기본 HTTP 포트는 80입니다.

WinRM 2.0: 기본 HTTP 포트는 5985입니다.


편집: 오류에 따라 클라이언트 컴퓨터에서 테스트할 수 있습니다.

Set-Item WSMan:\localhost\Client\TrustedHosts *

간단한 해결책을 제시한 사람은 도움을 한 번에 확인해 보는 것이 좋습니다. 하지만 실제로는 읽기가 빠릅니다.

get-help about_Remote_Troubleshooting | more

에서* 'Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$ipaddress"

*PSSession을 실행 중인 위치의 시스템

Windows 10에서는 WinRM Service가 실행 중인지 확인하여 명령을 호출하는 것이 중요합니다.

* 세트-항목 wsman:\localhost\Client\신뢰할 수 있음호스트 - 값 '*' - 힘 *

Microsoft가 부과한 임의 제한을 따르는 것에 신경 쓰지 않는 분들은 연결하려는 서버의 IP에 호스트 파일 항목을 추가하기만 하면 되고 IP 대신 다음 제한 사항을 우회하는 데 사용할 수 있습니다.

Enter-PSSession -Computername NameOfComputerIveAddedToMyHostFile -credentials $cred 

클라이언트에서 다음을 시도해 보십시오.

다음 명령을 실행하여 수신기 구성을 복원합니다.

winrm invoke Restore winrm/Config

다음 명령을 실행하여 Windows 원격 관리 서비스와 해당 수신기의 기본 구성을 수행합니다.

winrm quickconfig

winrm을 다시 구성한 후 호스트를 신뢰할 수 있는지 확인합니다.

Set-Item wsman:\localhost\Client\TrustedHosts -value "$ipaddress" -Force 

원격 연결 다시 시도

언급

HTTPS에 대한 winrm 구성

저는 많은 시간을 들였고 마침내 해결책을 얻었습니다.이 문제를 해결하기 위한 단계는 다음과 같습니다.

  1. 제어판로 이동\모든 제어판 항목\네트워크공유 센터\제어판의 고급 공유 설정
  2. 도메인 및 게스트의 시스템 검색이 켜져 있는지 확인합니다.
  3. 클라이언트 시스템에서 관리자 모드로 파워셸을 열고 winrm quickconfigwinrm set winrm/config/client '@{Trusted호스트="*"}'

돈이 이에 대해 언급한 바와 같이, 여기에 더 많은 정보가 있습니다.

IP를 사용하는 것은 Kerberos 인증 문제입니다.

AD 도메인에 있으면서 NTLM 및 신뢰할 수 있는 호스트를 허용하는 것보다 더 우아한 솔루션이 필요한 경우: https://learn.microsoft.com/en-us/windows-server/security/kerberos/configuring-kerberos-over-ip

" 윈도우즈 10 버전 1507 및 윈도우즈 Server 2016부터는 SPN에서 IPv4 및 IPv6 호스트 이름을 지원하도록 Kerberos 클라이언트를 구성할 수 있습니다.

기본적으로 호스트 이름이 IP 주소인 경우 Windows에서 호스트에 대한 Kerberos 인증을 시도하지 않습니다.NTLM과 같은 다른 인증 프로토콜로 다시 돌아갈 것입니다."

도메인에서 NTLM을 제한/사용하지 않도록 설정하는 GPO가 있을 수 있습니다. 이는 보안 위험이 될 수 있으므로 "RSOP"를 실행하십시오. GPO는 아래에 있습니다.컴퓨터 구성 > 정책 > Windows 설정 > 보안 설정 > 로컬 정책/보안 옵션 > 네트워크 보안

기본적인 인증을 허용하고 Trusted hosts에서 "*"를 허용하면 조금 움츠러듭니다 :)

GLHF

언급URL : https://stackoverflow.com/questions/6587426/powershell-remoting-with-ip-address-as-target