Небольшая проблема с New-ItemProperty в PowerShell - PullRequest
2 голосов
/ 22 октября 2010

Я новичок в PowerShell и не могу найти, как это исправить после бесчисленных поисков в Google. Я знаю, что это, вероятно, легко, но вот в основном то, что я хочу сделать, и ошибка, которая показывает:

PS C:\Windows\system32> $path = "HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}"

Get-Childitem $path -ErrorAction SilentlyContinue | Foreach {
    $key = Get-Item $_.PSPath

    if($key.Property -eq "VMnet") {
        New-ItemProperty $key -name "*NdisDeviceType" -value "1"
    }
}
New-ItemProperty : Cannot find path 'C:\Windows\system32\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0014' because it does not exist.
At line:7 char:25
+         New-ItemProperty <<<<  $key -name "*NdisDeviceType" -value "1"
    + CategoryInfo          : ObjectNotFound: (C:\Windows\syst...02BE10318}\0014:String) [New-ItemProperty], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.NewItemPropertyCommand

New-ItemProperty : Cannot find path 'C:\Windows\system32\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0015' because it does not exist.
At line:7 char:25
+         New-ItemProperty <<<<  $key -name "*NdisDeviceType" -value "1"
    + CategoryInfo          : ObjectNotFound: (C:\Windows\syst...02BE10318}\0015:String) [New-ItemProperty], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.NewItemPropertyCommand

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

1 Ответ

1 голос
/ 22 октября 2010

Попробуйте это:

$path = "HKLM:\SYSTEM\CurrentControlSet\Control\Class\" +
        "{4D36E972-E325-11CE-BFC1-08002BE10318}" 

Get-Childitem $path -ErrorAction SilentlyContinue | 
    Where {(Get-ItemProperty $_.PSPath DriverDesc) -match 'VMnet' } |
    Foreach { 
        New-ItemProperty $_.PSPath -name "*NdisDeviceType" -value "1" 
    } 
}

Кстати, я не вижу никаких повторных ключей для значений с именем «Свойство», может быть, вы могли бы соответствовать значению reg DriverDesc?В любом случае, причина, по которой вы получаете ошибку, заключается в том, что вы должны указать PSPath для New-ItemProperty, т.е. в вашем скрипте $key.PSPath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...