0

我有这个只显示空行的子程序。

'*************************************************************************
' 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

我想测试一下网络适配器的 MTU 值是否为 1300。这将在多台机器上运行,我遇到的问题是注册表中网络适配器的名称总是不同的。如果我的实现有效,那就太好了......

有任何想法吗?

编辑:我将子程序更改为此,但它不起作用。

'*************************************************************************
' 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 获得任何东西。

有什么建议么?我应该发一个新帖子吗?

4

3 回答 3

1

改变:

WScript.Echo(objItem.MTU & vbCrLf)

到:

WScript.Echo objItem.MTU
于 2012-09-20T07:04:16.540 回答
1

不是 100% 确定为什么没有 MTU 值。但是您始终可以调用SetMTU方法设置 MTU 值:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa393463(v=vs. 85).aspx

于 2012-09-25T01:26:28.773 回答
0

我认为是因为这个值是用来覆盖默认值的。

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

如果为null,则使用默认值,如果不是,则覆盖默认值。您可以使用以下 netsh 命令查看驱动程序报告的默认 MTU 值:

netsh interface ip show subinterfaces
于 2014-04-17T22:42:43.703 回答