2015-12-03 17 views
6

Tôi có thể lấy tên instance mạng thẻ truy cập như vậy:Powershell: Counter Instance Name cho Card mạng cụ thể

Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface 

Những kết quả đầu ra một cái gì đó như thế này cho Tên:

Intel[R] Ethernet Controller X540-AT2 
Intel[R] Ethernet Controller X540-AT2 _2 
Intel[R] Ethernet Controller X540-AT2 _3 
Intel[R] Ethernet Controller X540-AT2 _4 

Tôi có thể lấy (đã bật) Thẻ mạng như vậy:

Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" 

kết quả đầu ra giống như thế này cho Tên:

Intel(R) Ethernet Controller X540-AT2 
Intel(R) Ethernet Controller X540-AT2 #4 

Tuy nhiên, không có thuộc tính nào được trả về từ một trong hai cuộc gọi trực tiếp khớp với nhau.

Tên gần nhất là tên của win32_networkadapter, là tương tự với tên truy cập, nhưng đã bị thay đổi để xóa các ký tự không hợp lệ và thay đổi các ký tự khác (* 1), và có một số loại instancing đang diễn ra (* 2).

(* 1) = Chỉ cần thử nghiệm, nó hoán đổi dấu ngoặc tròn ("()") cho dấu ngoặc vuông ("[]") và băm thoát cho dấu gạch dưới.

(* 2) = Trong một máy có adapter Bốn mạng,

Câu hỏi của tôi là: Làm thế nào để trực tiếp bản đồ một cho người kia, mà không dựa vào thay thế văn bản phỏng đoán của tôi?

Chỉnh sửa:
Nếu bạn đang cố gắng kiểm tra điều này trên máy ảo, bạn sẽ cần thêm ít nhất hai thẻ mạng.

Dưới đây là kết quả có liên quan từ một Windows Server 2012 R2 VM chạy trên Hyper-V:

Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name 

Name 
---- 
Microsoft Hyper-V Network Adapter 
Microsoft Hyper-V Network Adapter _2 
Microsoft Hyper-V Network Adapter _3 


Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select Name 

Name 
---- 
Microsoft Hyper-V Network Adapter #2 
Microsoft Hyper-V Network Adapter 
Microsoft Hyper-V Network Adapter #3 

Chỉnh sửa lần nữa:

Chuỗi thay thế được ngay, và chỉ cần không hoạt động trên máy chủ đang sử dụng nhóm NIC.

Dưới đây là một ví dụ về một máy chủ đang sử dụng teaming NIC:

Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select name 

Name 
---- 
Intel(R) 82575EB Gigabit Network Connection 
Intel(R) 82575EB Gigabit Network Connection 
Intel(R) 82576 Gigabit Dual Port Network Connection 
Intel(R) 82576 Gigabit Dual Port Network Connection 
TEAM : PublicTeam 
TEAM : PrivateTeam 


Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name 


Name 
---- 
TEAM : PrivateTeam - Intel[R] 82575EB Gigabit Network Connection 
TEAM : PublicTeam - Intel[R] 82575EB Gigabit Network Connection _2 
TEAM : PrivateTeam - Intel[R] 82576 Gigabit Dual Port Network Connection 
TEAM : PublicTeam - Intel[R] 82576 Gigabit Dual Port Network Connection _2 

* Chỉnh sửa thứ ba/thứ tư: *

Tuy nhiên máy khác mà thậm chí không sử dụng việc đặt tên hơi đoán trên kế hoạch.

Đây là trên Windows Server 2012 R2:

Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name 

Name 
---- 
Intel[R] 82576 Gigabit Dual Port Network Connection 
Intel[R] 82576 Gigabit Dual Port Network Connection _2 
Intel[R] 82576 Gigabit Dual Port Network Connection _3 
Intel[R] 82576 Gigabit Dual Port Network Connection _4 

Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select Name 

Name 
---- 
Intel(R) 82576 Gigabit Dual Port Network Connection 
Intel(R) 82576 Gigabit Dual Port Network Connection 
Microsoft Network Adapter Multiplexor Driver 
Microsoft Network Adapter Multiplexor Driver #2 

Lưu ý rằng trong trường hợp này, đó là Microsoft Network Adapter rằng thực sự có KCN.

Mặc dù trong kịch bản này, các bộ đếm hiệu suất phù hợp trên bộ chuyển đổi Perf quầy thực sự làm việc (giao diện có vẻ đáng tin cậy hơn trong các tình huống khác)

Sửa 5:

dân tiếp tục làm bình luận như "Đó là tương tự như chủ đề khác này: Get Link Speed - Win32_PerfRawData_Tcpip_NetworkInterface "

Như đã được giải thích trong các chỉnh sửa ở trên, tôi đưa ra các ví dụ về loại văn bản này không hoạt động.

+0

Tôi không nghĩ rằng bạn có thể lập bản đồ 'Win32_PerfRawData_Tcpip_NetworkInterface' cho 'win32_networkadapter' vì không có khóa chia sẻ..nhưng bạn có thể liên quan đến 'networkadapterconfiguration' ... nó chỉ phụ thuộc vào thuộc tính nào của nic bạn muốn xem .... còn phiên bản nào của powerhell bạn đang sử dụng? – Kiran

+0

Tôi cần tên truy cập hiệu suất thực tế - cách tôi nhận được ở đó không quan trọng, miễn là tôi có thể ánh xạ nó trở lại '' win32_networkadapter'' (hoặc '' win32_networkadapterconfiguration'') - Tôi đang sử dụng thông tin từ đó , để xác định bộ đếm perf nào liên quan đến mạng nào trên hệ thống (dmz, riêng tư, v.v.) - thì tên cá thể bộ đếm perf đó được chuyển tới một ứng dụng khác. Tôi không thấy bảng cấu hình giúp như thế nào. –

+0

Không chắc chắn bạn đang sử dụng hệ điều hành nào nhưng trên máy tính Windows 10 của tôi và máy ảo thắng 2012 cả hai lớp đều trả về tên phù hợp vì vậy tôi sợ tôi không thể kiểm tra điều này .. – Kiran

Trả lời

0

Tôi không thể tìm thấy mối quan hệ khác với tên đó.

Vì vậy, như tôi không thể tưởng tượng tất cả các caracters thay thế tôi instore một tên kinh điển:

$cananicalName1 = "Intel(R) Ethernet Controller X540-AT2 #4" -replace '[^A-Za-z0-9]','_' 
$cananicalName2 = "Intel[R] Ethernet Controller X540-AT2 _4" -replace '[^A-Za-z0-9]','_' 

cả cho:

Intel_R__Ethernet_Controller_X540_AT2__4 
+0

Thật không may Thay thế văn bản không hữu ích. Tôi tìm thấy một hộp mà điều này sẽ không làm việc cả. Tôi sẽ chỉnh sửa câu hỏi với nhiều thông tin hơn. –

Các vấn đề liên quan