2014-10-15 1 views
0
내가 물리적 네트워크 어댑터를 쿼리하려고

에서는 Win32_NetworkAdapter 얻을-WmiObject를을 frrom와 나는 서로 다른 접근 방식에서 다른 결과파워 쉘 얻을-netadapter 다릅니다은

get-wmiobject win32_networkadapter -Filter "NetEnabled='True' and PhysicalAdapter='True'"| select netconnectionid, name, netconnecionstatus 

반환

get-wmiobject win32_networkadapter

반면 참조

get-netadapter -physical 

만 반환

enter image description here

나는 -physicalPhysicalAdapter='True'으로 동일하지만 그 결과에서 본 경우가 보이지 않는다는 가정하에 있었다. 왜?

+0

가상 네트워크가 '물리적'으로 인식되지 않고 다른 것으로 인식되지 않습니다. –

답변

0

Windows 8/2012가 설치되어 있지 않아서 Get-NetAdapter에 사용 된 정확한 xml을 확인할 수 없습니다. 여기에 게시 할 수 없지만 아마도 그 cmdlet에 대한 기본 서식 지정 템플릿을 따르고 있습니다. .

기본적으로 표시 할 속성과 형식을 지정하는 XML 파일입니다.

WMI 개체는 직접 cmdlet의 제품이 아니며 wmi 클래스의 정보를 가져옵니다.

+0

질문은 서식 지정에 관한 것이 아닙니다. 그것은 결과에 관한 것입니다. 'Intel Centrino Advanced-N 6205'만이 유일한 물리적 어댑터이지만, 왜 'win32_networkadapter'는 3 가지 다른 결과를 보여줍니다. 명확하지 않은 것에 대해 유감스럽게 생각합니다. 나는 그 질문을 갱신했다. –

+0

Get-NetAdapter -Physical은 물리적 어댑터 만 표시합니다. 어쩌면 - 물리학자가 필터 역할을합니까? cmdlet이 필터링 된 결과를 제공하는 반면 wmi 클래스가 모든 어댑터를 제공하는 이유는 무엇입니까? 안 그래요?:) –

+0

예. -physical은 필터이므로 PhysicalAdapter = 'True'입니다. 질문은 왜 그들이 같은 값을 돌려 보내지 않는지입니다. –

1

cmdlet에 서로 다른 데이터 형식을 반환 :

[PS]> (Get-NetAdapter -Physical).GetType().FullName 
Microsoft.Management.Infrastructure.CimInstance 

[PS]> (Get-WmiObject -Class "Win32_NetworkAdapter").GetType().FullName 
System.Object[] 

[PS]> (Get-WmiObject -Class "Win32_NetworkAdapter")[0].GetType().FullName 
System.Management.ManagementObject 

당신이이 블로그를 읽기 시작하는 것이 좋습니다 그래서, 나는 여기에 CimInstance - 대 - WMI 토론 어떤 정의를 할 수있는 확실하지 않다 :

cmdlet은 여러 가지 작업을 수행하고있을 수 있지만이 경우 한 가지 방법을 사용하는 개 이상의 인터페이스가 나타나는 이유를 반드시 설명하지는 않습니다. Get-WMIObject에 의해 반환 된 일부 인터페이스가 "숨겨진"인터페이스 일 수도 있습니다. Get-NetAdapter 스위치는 -IncludeHidden 스위치를 지원합니다.

Get-NetAdapter

얻 NetAdapter cmdlet을

는 기본 네트워크 어댑터 속성을 가져옵니다. 기본적으로 표시되는 어댑터 만 반환됩니다.

+0

숨겨진 것이 아닙니다. 제 생각에는 가상 이더넷 어댑터가 Powershell을 통해 노출되지는 않지만'win32' API를 통해 이루어지기 때문입니다 –