2012-09-18 19 views
0

我有這個子例程只顯示空白行。嘗試使用WMI來顯示系統上的網絡適配器的MTU值

'************************************************************************* 
' Check MTU 
'************************************************************************* 
Sub CheckMTU() 
    WScript.Echo("Check if MTU Size is set to 1300") 
    WScript.Echo("------------------------------------") 
    Set colNetwork = objWMISrvc.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") 
    For Each objItem in colNetwork 
     WScript.Echo(objItem.MTU & vbCrLf) 
    Next 
End Sub 

我想測試一下,看看如果網絡適配器有一個1300這將在多個機器上運行的MTU值和我有問題是在註冊表中的網絡適配器的名稱總是不同的。這將是很好,如果我的實施工作...

任何想法?

編輯: 我改變了這個子程序,但它不工作。

'************************************************************************* 
' Check MTU 
'************************************************************************* 
Sub CheckMTU() 
    Dim intResult 
    WScript.Echo("Verify MTU Size is 1300. Changes MTU Size to 1300 ") 
    WScript.Echo("------------------------------------") 
    Set colNetwork = objWMISrvc.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE IPEnabled = True") 'WHERE IPEnabled = True 
    For Each objItem in colNetwork 
     WScript.Echo objItem 
     intResult = objItem.SetMTU(1300) 
     WScript.Echo intResult 
    Next 
    If intResult = 0 or intResult = 1 Then 
     WScript.Echo("Network Adapter MTU Value is set to 1300. Test PASSED" & vbCrLf) 
    Else 
     WScript.Echo("Network Adapter MTU Value can't be set to 1300. Test FAILED" & vbCrLf) 
    End If 
End Sub 

它甚至沒有打印出intResult或objItem。它幾乎感覺好像它沒有從colNetwork獲取任何東西。

有什麼建議嗎?我應該做一個新的職位?

回答

1

變化:

WScript.Echo(objItem.MTU & vbCrLf) 

要:

WScript.Echo objItem.MTU 
+0

我只是得到NULL – envinyater

+0

我也得空,但我值爲NULL;你確定你的網絡適配器MTU值不是NULL嗎? – nimizen

0

我想是因爲這個值用來覆蓋默認值。

"Overrides the default Maximum Transmission Unit (MTU) for a network interface." 

如果它爲空,則使用默認值,如果不是,則覆蓋默認值。 您可以查看驅動器具有以下netsh命令報道了默認的MTU值:

netsh interface ip show subinterfaces 
相關問題