получение значений определенных строковых значений в ключах реестра с powershell - PullRequest
2 голосов
/ 16 ноября 2011

Используя следующий скрипт powershell:

Get-ChildItem hkcu:\Test\Universe\Datawink\Switch1\Devices | ForEach-Object {Get-ItemProperty $_.pspath}

Я могу получить следующий вывод:

PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Test\Universe\Datawink\Switch1\Devices\Entry1
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Test\Universe\Datawink\Switch1\Devices
PSChildName  : Entry1
PSProvider   : Microsoft.PowerShell.Core\Registry
Device       : 2882881001
Recordable   : Yes
Active       : Yes

PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Test\Universe\Datawink\Switch1\Devices\Entry2
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Test\Universe\Datawink\Switch1\Devices
PSChildName  : Entry2
PSProvider   : Microsoft.PowerShell.Core\Registry
Device       : 2882881002

PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Test\Universe\Datawink\Switch1\Devices\Entry3
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Test\Universe\Datawink\Switch1\Devices
PSChildName  : Entry3
PSProvider   : Microsoft.PowerShell.Core\Registry
Device       : 2882881003

Что здорово, он показывает мне информацию, которую я хочу, но всеМне действительно нужны значения строковой записи, называемой «Device», поэтому все, что я на самом деле хочу, это вывод скрипта, который будет выглядеть следующим образом:

Device       : 2882881001
Device       : 2882881002
Device       : 2882881003

или в идеале это:

2882881001
2882881002
2882881003

Какой самый простой способ добиться этого?

Ответы [ 2 ]

5 голосов
/ 16 ноября 2011

Это также должно работать:

$path = 'hkcu:\Test\Universe\Datawink\Switch1\Devices'
Get-ChildItem $path | Get-ItemProperty | Select-Object -ExpandProperty Device
3 голосов
/ 16 ноября 2011
Get-ChildItem hkcu:\Test\Universe\Datawink\Switch1\Devices | ForEach-Object {Get-ItemProperty $_.pspath} | where-object {$_.Device} | Foreach-Object {$_.Device}

даст вам запрошенный вывод.

(в вашем примере объект Where не требуется)

...