개요
Get-NetIPConfiguration과 Get-NetAdapter는 둘 다 “이 컴퓨터의 네트워크는 지금 어떤 상태인가"를 보여주지만, 서로 다른 층위를 다루는 상호 보완적인 cmdlet이다. 109–111장이 다른 컴퓨터·이름과의 연결성을 진단했다면, 이 장은 진단의 출발점인 “로컬 컴퓨터 자체의 네트워크 구성"으로 시선을 돌린다.
정신 모델은 “Get-NetIPConfiguration이 네트워크 층(IP 주소, 게이트웨이, DNS 서버)을 요약해 주는 것이라면, Get-NetAdapter는 그보다 한 단계 아래인 링크 층(물리적 어댑터 자체의 이름, 상태, 속도, MAC 주소)을 보여준다"는 것이다. 전통적인 ipconfig가 이 두 정보를 한 화면에 섞어 보여줬다면, PowerShell은 이를 역할이 분명한 두 개의 cmdlet으로 나눠 각각 필요한 정보만 정확히 조회할 수 있게 한다.
사용법
| |
종류
| cmdlet | 다루는 층위 | 주요 반환 속성 |
|---|---|---|
Get-NetIPConfiguration | 네트워크(IP) 층 | InterfaceAlias, IPv4Address, IPv4DefaultGateway, DNSServer |
Get-NetAdapter | 링크(하드웨어) 층 | Name, Status, LinkSpeed, MacAddress, InterfaceDescription |
| 주요 매개변수 | 대상 cmdlet | 의미 |
|---|---|---|
-All | Get-NetIPConfiguration | 가상·루프백·연결 끊김 인터페이스까지 전부 포함(기본은 활성 인터페이스만) |
-Detailed | Get-NetIPConfiguration | 컴퓨터 이름, MTU, DHCP 상태 등 추가 정보 포함 |
-Physical | Get-NetAdapter | 가상 어댑터를 제외하고 물리 어댑터만 조회 |
-IncludeHidden | Get-NetAdapter | 숨겨진 어댑터까지 포함 |
예시
| |
주의사항·함정
두 cmdlet 모두 Windows 전용이며 NetTCPIP/NetAdapter 모듈에 속한다: 110–111장의 Windows 전용 cmdlet들과 마찬가지로 macOS/Linux pwsh에서는 사용할 수 없다. 크로스플랫폼 환경에서 인터페이스 정보가 필요하면 Get-NetIPAddress류 대신 .NET의 System.Net.NetworkInformation.NetworkInterface 클래스를 직접 활용해야 한다.
Get-NetIPConfiguration은 기본적으로 “연결된” 인터페이스만 보여준다: 연결이 끊긴 어댑터나 비활성 가상 인터페이스는 기본 출력에 나타나지 않는다. 문제가 있는 인터페이스까지 모두 살펴보려면 -All 매개변수를 명시적으로 추가해야 한다 — 이를 놓치면 “왜 이 어댑터가 안 보이지"라는 혼란으로 이어진다.
Get-NetAdapter의 기본 출력(Format-Table)에는 일부 속성만 표시된다: MacAddress나 DriverVersion 같은 세부 정보는 기본 테이블 뷰에 나오지 않으므로, Format-List -Property *나 Format-Table -View Driver처럼 명시적으로 뷰를 바꿔야 확인할 수 있다. 필요한 속성이 안 보인다고 해서 그 값이 없는 것은 아니다.
어댑터 이름(Name)은 컴퓨터마다 다를 수 있어 하드코딩하면 이식성이 떨어진다: “Ethernet"이라는 이름은 흔하지만 보장된 것이 아니며, 다중 NIC 환경이나 가상 머신에서는 “Ethernet 2”, “vEthernet (External)“처럼 달라진다. 스크립트에서는 -Physical이나 Where-Object Status -eq "Up"처럼 이름이 아닌 속성 기반으로 대상을 특정하는 편이 안전하다.
이식성: 전통적인 ipconfig /all(Windows)이나 ip addr(Linux)은 IP 구성과 인터페이스 상태를 한 화면에 텍스트로 섞어 보여주지만, Get-NetIPConfiguration/Get-NetAdapter 조합은 이를 층위별 객체로 분리해 파이프라인으로 다시 조합할 수 있게 한다. Get-NetIPConfiguration | Get-NetIPAddress처럼 두 cmdlet을 파이프로 잇는 패턴은 CMD·Bash의 단일 명령 출력 파싱 방식과 근본적으로 다른 PowerShell 특유의 접근이다.
![Featured image of post [PowerShell] 112. Get-NetIPConfiguration/Get-NetAdapter](/post/powershell/get-netipconfiguration-get-netadapter-powershell/wordcloud_hu_5f625a9ac08758b8.webp)
![[PowerShell] 110. Test-NetConnection — 포트·경로 진단](/post/powershell/test-netconnection-port-diagnostic-powershell/wordcloud_hu_4ef96a3f0e037e64.webp)
![[PowerShell] 111. Resolve-DnsName — DNS 질의](/post/powershell/resolve-dnsname-dns-query-powershell/wordcloud_hu_979b25d1d2bad2ef.webp)
![[PowerShell] 112. Get-NetIPConfiguration/Get-NetAdapter](/post/powershell/get-netipconfiguration-get-netadapter-powershell/wordcloud_hu_52dd3e956ba2b525.webp)
![[PowerShell] 113. Invoke-WebRequest/Invoke-RestMethod](/post/powershell/invoke-webrequest-invoke-restmethod-powershell/wordcloud_hu_d83d75f2879b9315.webp)
![[PowerShell] 114. New-Guid/Get-Random — 유틸리티 모음](/post/powershell/new-guid-get-random-utility-powershell/wordcloud_hu_e9ded1c7c447f201.webp)
![[PowerShell] 109. Test-Connection — ping 대응](/post/powershell/test-connection-ping-powershell/wordcloud_hu_5dcd5e1b70095610.webp)
![[PowerShell] 00. 과정 개요와 커리큘럼](/post/powershell/getting-started-powershell/wordcloud_hu_15979a96cd2a594f.webp)