1

我有一个包含多个字符串名称/数据值的注册表项(它们是 REG_SZ 类型)。我想列出名称/数据值并按名称值对它们进行排序。我想在 powershell 中执行此操作。我可以毫无问题地获得值,Get-ItemProperty但我不确定如何使用Sort-Object. 正如您在下面看到的,它没有排序。

$item = Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources' | Sort-Object


PSPath                      : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data S
                          ources
PSParentPath                : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
PSChildName                 : ODBC Data Sources
PSProvider                  : Microsoft.PowerShell.Core\Registry
MSDWDATA_DEFAULT_SYBASE4.00 : DataDirect 4.0 Sybase Wire Protocol
Xtreme Sample Database 2003 : Microsoft Access Driver (*.mdb)
NYT_OPS                     : DataDirect 4.2 Sybase Wire Protocol
NYP_OPS                     : DataDirect 4.2 Sybase Wire Protocol
NYP_MSPA2                   : DataDirect 4.2 Sybase Wire Protocol
NYT_MSPA_A                  : DataDirect 4.2 Sybase Wire Protocol
4

2 回答 2

4
$p = Get-ItemProperty -Path 'HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources'
$p.PSObject.Properties | Sort-Object Value| Format-Table Name,Value
于 2012-11-05T14:11:10.033 回答
0

真的很丑:

$item = Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources' | 
out-string -Stream | sort 

或按价值(更丑陋):

$item = Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources' | 
out-string -Stream | sort { ($_.split(':'))[1] }
于 2012-11-05T13:39:49.030 回答