【问题标题】:PowerShell / WMI to set MSNdis_currentpacketfilterPowerShell / WMI 设置 MSNdis_currentpacketfilter
【发布时间】:2015-04-08 23:32:27
【问题描述】:

我想知道是否有办法使用带有 WMI 的 PowerShell 来设置 MSNdis_currentPacketFilter

PS > Get-WmiObject -class "MSNdis_CurrentPacketFilter" -NameSpace "root\WMI" -Filter "InstanceName='Intel(R) Ethernet Server Adapter I350-T2'"

__GENUS                 : 2
__CLASS                 : MSNdis_CurrentPacketFilter
__SUPERCLASS            : MSNdis
__DYNASTY               : MSNdis
__RELPATH               : MSNdis_CurrentPacketFilter.InstanceName="Intel(R) Ethernet Server Adapter I350-T2"
__PROPERTY_COUNT        : 3
__DERIVATION            : {MSNdis}
__SERVER                : HYPERV88
__NAMESPACE             : root\WMI
__PATH                  : \\HYPERV88\root\WMI:MSNdis_CurrentPacketFilter.InstanceName="Intel(R) Ethernet Server Adapter
                          I350-T2"
Active                  : True
InstanceName            : Intel(R) Ethernet Server Adapter I350-T2
NdisCurrentPacketFilter : 15
PSComputerName          : HYPERV88

我想将 NdisCurrentPacketFilter 的值从 15 更改为 47。

我试过了

Set-WMIInstance -Path ... -Arguments @{NdisCurrentPacketFilter=47}

但是,出错了。提前致谢!

===== 添加于 2015 年 4 月 17 日 以下是我尝试过的命令:

$p=$(Get-WmiObject -class "MSNdis_CurrentPacketFilter" -NameSpace "root\WMI" -Filter "InstanceName='Intel(R) Ethernet Server Adapter I350-T2'").__Path
Write-Host $p
\\HYPERV88\root\WMI:MSNdis_CurrentPacketFilter.InstanceName="Intel(R) Ethernet Server Adapter I350-T2"
Set-WmiInstance -Path $p -Arguments @{NdisCurrentPacketFilter=47}

和错误(不知道为什么它说找不到命令,但命令是有效的)

Set-WmiInstance : Not found
At line:1 char:1
+ Set-WmiInstance -Path $p -Arguments @{NdisCurrentPacketFilter=47}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Set-WmiInstance], ManagementException
    + FullyQualifiedErrorId : SetWMIManagementException,Microsoft.PowerShell.Commands.SetWmiInstance

我试过这个:

$o = Get-WmiObject -class "MSNdis_CurrentPacketFilter" -NameSpace "root\WMI" -Filter "InstanceName='Intel(R) Ethernet Server Adapter I350-T2'"
Write-Host $o
\\HYPERV88\root\WMI:MSNdis_CurrentPacketFilter.InstanceName="Intel(R) Ethernet Server Adapter I350-T2"
Set-WMIInstance -class "MSNdis_CurrentPacketFilter" -InputObject $o -Arguments @{NdisCurrentPacketFilter=47}
Set-WmiInstance : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ Set-WMIInstance -class "MSNdis_CurrentPacketFilter" -InputObject $o -Arguments @ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-WmiInstance], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.SetWmiInstance

【问题讨论】:

  • 看起来是只读的
  • 我注意到,当我在界面上运行wireshark时,wireshark会进行相应的设置,而当wireshark退出时,该值会被重置。
  • Wireshark 可能不会使用 WMI 来更改它

标签: powershell wmi


【解决方案1】:

根据scriptinternals,我认为您遇到了这个问题,该值是只读的。

NdisCurrentPacketFilter

  • 数据类型:整数/usint32
  • 访问类型:只读

我也发现了类似的信息here。你也应该在这里写下你的错误。它可能为您的问题添加了上下文,这是提问时的最佳实践。

免责声明:我对这门课一无所知。只是想看看是否有人发布了类参数的详细信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 1970-01-01
    • 2015-01-18
    • 2017-05-04
    相关资源
    最近更新 更多