2015-04-08 5 views
0

Я хотел бы знать, если есть способ использовать PowerShell с WMI, чтобы установить MSNdis_currentPacketFilterPowerShell/WMI для установки 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} 

Но получил ошибку. Заранее спасибо!

===== добавил 04/17/2015 Здесь были команды, которые я принимала:

$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 
+0

Похоже, что он только для чтения – Matt

+0

Я заметил, что когда я запускал wirehark на интерфейсе, wirehark будет устанавливать его соответствующим образом, и когда wirehark выйдет, значение будет сброшено. –

+0

Wireshark может не использовать WMI для его изменения – Matt

ответ

0

Я думаю, что вы с этой проблемой, как в соответствии с scriptinternals это значение доступно только для чтения.

NdisCurrentPacketFilter

  • Тип данных: целое число/usint32
  • Тип доступа: только для чтения

Я нашел аналогичную информацию here, а также. Вы также должны были написать свою ошибку. Это могло бы добавить контекст к вашей проблеме, и это лучшая практика при задании вопросов.

Отказ от ответственности: Я ничего не знаю о классе. Просто хотел посмотреть, не отправил ли кто-нибудь подробности параметров класса.

Смежные вопросы