Share via


Test-Connection

하나 이상의 컴퓨터에 ICMP 에코 요청 패킷 또는 ping을 보냅니다.

Syntax

Test-Connection
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [<CommonParameters>]
Test-Connection
    [-AsJob]
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Credential <PSCredential>]
    [-Source] <String[]>
    [-Impersonation <ImpersonationLevel>]
    [-ThrottleLimit <Int32>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [<CommonParameters>]
Test-Connection
    [-DcomAuthentication <AuthenticationLevel>]
    [-WsmanAuthentication <String>]
    [-Protocol <String>]
    [-BufferSize <Int32>]
    [-ComputerName] <String[]>
    [-Count <Int32>]
    [-Impersonation <ImpersonationLevel>]
    [-TimeToLive <Int32>]
    [-Delay <Int32>]
    [-Quiet]
    [<CommonParameters>]

Description

cmdlet은 Test-Connection 하나 이상의 원격 컴퓨터에 ICMP(Internet Control Message Protocol) 에코 요청 패킷 또는 ping을 보내고 에코 응답 응답을 반환합니다. 이 cmdlet을 사용하여 IP 네트워크를 통해 특정 컴퓨터에 연결할 수 있는지 여부를 확인할 수 있습니다.

송신 컴퓨터와 수신 컴퓨터를 모두 지정하고, 명령을 백그라운드 작업으로 실행하고, 시간 제한 및 ping 수를 설정하고, 연결 및 인증을 구성하는 매개 변수 Test-Connection 를 사용할 수 있습니다.

친숙한 ping 명령 Test-Connection 달리 PowerShell에서 조사할 수 있는 Win32_PingStatus 개체를 반환합니다. Quiet 매개 변수는 테스트된 각 연결에 대해 System.Boolean 개체의 부 값을 반환합니다. 여러 연결을 테스트하면 부울 값 배열이 반환됩니다.

예제

예제 1: 원격 컴퓨터에 에코 요청 보내기

이 예제에서는 로컬 컴퓨터에서 Server01 컴퓨터로 에코 요청 패킷을 보냅니다.

Test-Connection -ComputerName Server01

Source        Destination     IPV4Address     IPV6Address  Bytes    Time(ms)
------        -----------     -----------     -----------  -----    --------
ADMIN1        Server01         10.59.137.44                32       0
ADMIN1        Server01         10.59.137.44                32       0
ADMIN1        Server01         10.59.137.44                32       0
ADMIN1        Server01         10.59.137.44                32       1

Test-ConnectionComputerName 매개 변수를 사용하여 Server01 컴퓨터를 지정합니다.

예제 2: 여러 컴퓨터에 에코 요청 보내기

이 예제에서는 로컬 컴퓨터에서 여러 원격 컴퓨터로 ping을 보냅니다.

Test-Connection -ComputerName Server01, Server02, Server12

예제 3: 여러 컴퓨터에서 컴퓨터로 에코 요청 보내기

이 예제에서는 다른 원본 컴퓨터에서 단일 원격 컴퓨터인 Server01로 ping을 보냅니다.

Test-Connection -Source Server02, Server12, localhost -ComputerName Server01 -Credential Domain01\Admin01

Test-Connection는 자격 증명 매개 변수를 사용하여 원본 컴퓨터에서 ping 요청을 보낼 권한이 있는 사용자의 자격 증명을 지정합니다. 이 명령 형식을 사용하여 여러 지점에서 연결 대기 시간을 테스트합니다.

예제 4: 매개 변수를 사용하여 테스트 명령 사용자 지정

이 예제에서는 매개 변수 Test-Connection 를 사용하여 명령을 사용자 지정합니다. 로컬 컴퓨터는 원격 컴퓨터에 ping 테스트를 보냅니다.

Test-Connection -ComputerName Server01 -Count 3 -Delay 2 -TTL 255 -BufferSize 256 -ThrottleLimit 32

Test-ConnectionComputerName 매개 변수를 사용하여 Server01을 지정합니다. Count 매개 변수는 3개의 ping이 2초 간격의 지연으로 Server01 컴퓨터로 전송되도록 지정합니다.

홉 수가 길거나 트래픽이 많은 네트워크 조건으로 인해 ping 응답이 평소보다 오래 걸릴 것으로 예상되는 경우 이러한 옵션을 사용할 수 있습니다.

예제 5: 백그라운드 작업으로 테스트 실행

이 예제에서는 PowerShell 백그라운드 작업으로 명령을 실행하는 Test-Connection 방법을 보여줍니다.

$job = Test-Connection -ComputerName (Get-Content Servers.txt) -AsJob
if ($job.JobStateInfo.State -ne "Running") {$Results = Receive-Job $job}

Test-Connection 명령은 엔터프라이즈의 많은 컴퓨터를 ping합니다. ComputerName 매개 변수의 값은 컴퓨터 이름 Servers.txt file목록을 읽는 Get-Content 명령입니다. 이 명령은 AsJob 매개 변수를 사용하여 명령을 백그라운드 작업으로 실행하고 변수에 $job 작업을 저장합니다.

if 명령은 작업이 아직 실행되고 있지 않은지 확인하는 검사. 작업이 실행 Receive-Job 되고 있지 않으면 결과를 가져오고 변수에 $Results 저장합니다.

예제 6: 자격 증명을 사용하여 원격 컴퓨터 Ping

이 명령은 cmdlet을 Test-Connection 사용하여 원격 컴퓨터를 ping합니다.

Test-Connection Server55 -Credential Domain55\User01 -Impersonation Identify

이 명령은 자격 증명 매개 변수를 사용하여 원격 컴퓨터를 ping할 수 있는 권한이 있는 사용자 계정과 가장 수준을 식별으로 변경하는 Impersonation 매개 변수를 지정합니다.

예제 7: 연결 테스트가 성공한 경우에만 세션 만들기

다음은 컴퓨터에 전송된 ping 중 하나 이상이 성공한 경우에만 Server01 컴퓨터에 세션을 만드는 예제입니다.

if (Test-Connection -ComputerName Server01 -Quiet) {New-PSSession Server01}

if 명령은 cmdlet을 Test-Connection 사용하여 Server01 컴퓨터를 ping합니다. 이 명령은 Win32_PingStatus 개체 대신 부울 값을 반환하는 Quiet 매개 변수를 사용합니다. 값은 $True 4개의 ping 중 어느 것이 성공하고, 그렇지 않으면 $False.

명령이 Test-Connection 값을 $True반환하는 경우 명령은 cmdlet을 New-PSSession 사용하여 PSSession만듭니다.

매개 변수

-AsJob

이 cmdlet이 백그라운드 작업으로 실행됨을 나타냅니다.

이 매개 변수를 사용하려면 원격으로 로컬 및 원격 컴퓨터를 구성해야 하며 Windows Vista 이상 버전의 Windows 운영 체제에서는 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 열어야 합니다. 자세한 내용은 about_Remote_Requirements 참조하세요.

AsJob 매개 변수를 지정하면 이 명령은 백그라운드 작업을 나타내는 개체를 즉시 반환합니다. 작업이 완료되는 동안 세션에서 작업을 계속할 수 있습니다. 작업이 로컬 컴퓨터에 만들어지고 원격 컴퓨터의 결과가 자동으로 로컬 컴퓨터로 반환됩니다. 작업 결과를 얻으려면 cmdlet을 Receive-Job 사용합니다.

PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobsabout_Remote_Jobs 참조하세요.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BufferSize

이 명령을 사용하여 보낸 버퍼의 크기(바이트)를 지정합니다. 기본값은 32입니다.

Type:Int32
Aliases:Size, Bytes, BS
Position:Named
Default value:32
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

ping할 컴퓨터를 지정합니다. 컴퓨터 이름을 입력하거나 IP 주소를 IPv4 또는 IPv6 형식으로 입력합니다. 와일드카드 문자는 허용되지 않습니다. 이 매개 변수는 필수입니다.

이 매개 변수는 PowerShell 원격을 사용하지 않습니다. 컴퓨터가 원격 명령을 실행하도록 구성되지 않은 경우에도 ComputerName 매개 변수를 사용할 수 있습니다.

참고 항목

ComputerName 매개 변수의 이름이 PowerShell 6.0 이상에서 TargetName으로 변경되었습니다.

Type:String[]
Aliases:CN, IPAddress, __SERVER, Server, Destination
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Count

보낼 에코 요청 수를 지정합니다. 기본값은 4입니다.

Type:Int32
Position:Named
Default value:4
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

원본 컴퓨터에서 ping 요청을 보낼 수 있는 권한이 있는 사용자 계정을 지정합니다. User01 또는 Do기본01\User01과 같은 사용자 이름을 입력하거나 cmdlet에서 PSCredential 개체와 같은 PSCredential 개체를 Get-Credential 입력합니다.

자격 증명 매개 변수는 원본 매개 변수가 명령에 사용되는 경우에만 유효합니다. 자격 증명은 대상 컴퓨터에 영향을 주지 않습니다.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DcomAuthentication

이 cmdlet이 WMI와 함께 사용하는 인증 수준을 지정합니다. Test-Connection 는 WMI를 사용합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • Default입니다. Windows 인증
  • 없음. COM 인증 없음
  • 연결. 커넥트 수준 COM 인증
  • 호출합니다. 호출 수준 COM 인증
  • 패킷. 패킷 수준 COM 인증
  • PacketIntegrity. 패킷 개인 정보 수준 COM 인증
  • PacketPrivacy. 패킷 개인 정보 수준 COM 인증
  • 변경되지 않았습니다. 이전 명령과 동일

기본값은 열거형 값이 4인 Packet입니다. 이 매개 변수의 값에 대한 자세한 내용은 AuthenticationLevel 열거형을 참조하세요.

Type:AuthenticationLevel
Aliases:Authentication
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:Packet (enumerated value of 4)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Delay

ping 사이의 간격(초)을 지정합니다.

Type:Int32
Position:Named
Default value:1 (second)
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Impersonation

이 cmdlet이 WMI를 호출할 때 사용할 가장 수준을 지정합니다. Test-Connection 는 WMI를 사용합니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • Default입니다. 기본 가장입니다.
  • 익명. 호출자의 ID를 숨깁니다.
  • 식별합니다. 개체가 호출자의 자격 증명을 쿼리할 수 있습니다.
  • 가장합니다. 개체가 호출자의 자격 증명을 사용할 수 있습니다.

기본값은 Impersonate입니다.

Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:Impersonate
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Protocol

프로토콜을 지정합니다. 이 매개 변수에 허용되는 값은 DCOM 및 WSMan입니다.

Type:String
Accepted values:DCOM, WSMan
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Quiet

Quiet 매개 변수는 System.Boolean 개체의 부울 값을 반환합니다. 이 매개 변수를 사용하면 모든 오류가 표시되지 않습니다.

테스트되는 각 연결은 부울 값을 반환합니다. ComputerName 매개 변수가 여러 컴퓨터를 지정하는 경우 부울 값의 배열이 반환됩니다.

ping$True 성공하면 반환됩니다.

모든 ping이 실패 $False 하면 반환됩니다.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Source

ping이 시작되는 컴퓨터의 이름을 지정합니다. 쉼표로 구분된 컴퓨터 이름 목록을 입력합니다. 기본값은 로컬 컴퓨터입니다.

Type:String[]
Aliases:FCN, SRC
Position:1
Default value:Local computer
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

이 명령을 실행하도록 설정할 수 있는 최대 동시 연결 수를 지정합니다. 이 매개 변수를 생략하거나 0 값을 입력하면 기본값 32가 사용됩니다.

제한 제한은 세션이나 컴퓨터가 아닌 현재 명령에만 적용됩니다.

Type:Int32
Position:Named
Default value:32
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TimeToLive

패킷을 전달할 수 있는 최대 시간을 지정합니다. 게이트웨이, 라우터 등의 모든 홉에 대해 TimeToLive 값이 1씩 감소합니다. 0이면 패킷이 디스카드되고 오류가 반환됩니다. Windows에서 기본값은 128입니다. TimeToLive 매개 변수의 별칭은 TTL입니다.

Type:Int32
Aliases:TTL
Position:Named
Default value:128 in Windows
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WsmanAuthentication

이 cmdlet에서 WSMan 프로토콜을 사용할 때 사용자 자격 증명을 인증하는 데 사용되는 메커니즘을 지정합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 기본
  • CredSSP
  • 기본값
  • 다이제스트
  • Kerberos
  • 협상.

기본값은 Default입니다.

이 매개 변수의 값에 대한 자세한 내용은 AuthenticationMechanism 열거형을 참조 하세요.

주의: 인증할 원격 컴퓨터에 사용자 자격 증명이 전달되는 CredSSP(자격 증명 보안 서비스 공급자) 인증은 원격 네트워크 공유 액세스와 같이 둘 이상의 리소스에 대한 인증이 필요한 명령을 위해 설계되었습니다. 이 메커니즘은 원격 작업의 보안 위험을 높입니다. 원격 컴퓨터가 손상된 경우 이 컴퓨터로 전달된 자격 증명을 사용하여 네트워크 세션을 제어할 수 있습니다.

이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.

Type:String
Accepted values:Default, Basic, Negotiate, CredSSP, Digest, Kerberos
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

None

개체를 이 cmdlet으로 파이프할 수 없습니다.

출력

ManagementObject

기본적으로 이 cmdlet은 각 ping 회신에 대한 Win32_PingStatus 개체를 반환합니다.

System.Management.Automation.RemotingJob

AsJob 매개 변수를 지정하는 경우 이 cmdlet은 작업 개체를 반환합니다.

Boolean

Quiet 매개 변수를 사용하면 부울 값이 반환됩니다. cmdlet이 여러 연결을 테스트하는 경우 부울 값의 배열을 반환합니다.

참고

이 cmdlet은 Win32_PingStatus 클래스를 사용합니다. Get-WMIObject Win32_PingStatus 명령은 명령과 Test-Connection 동일합니다.

원본 매개 변수 집합은 PowerShell 3.0에서 도입되었습니다.