2017-04-19 68 views
4

在我的函數中,我想搜索特定子項的數據部分中的特定字符串。內部功能的代碼部分如下:如何使用PowerShell獲取密鑰內的註冊表值的數據值

foreach ($CurrentPath in $Path) { 
    $Items = Get-Item -Path Registry::$CurrentPath 
    ForEach ($Property in $Items) { 
     $Key = $Property 

當我$Key = $Property調試後直接去到主機命令窗口,鍵入$Key,然後按回車。它返回與:

 
Hive: hkcu 

Name       Property 
----       -------- 
ABC       Test : ababab\MSSQLSERVER_2014\ababab 

我想我的函數也搜索數據部分所示的圖像所附的是在註冊表中。

Regedit image sample

如何實現搜索?

+2

我想你需要看看使用'get-itemproperty'。 –

回答

0

如果您不知道值的名稱,您需要循環的屬性。例如,使用Get-Item

$item = Get-Item -Path "Registry::HKEY_CURRENT_USER\Software\NuGet" 

foreach ($prop in $item.Property) { 
    if($item.GetValue($prop) -match '0') { "Match found in key $($item.PSPath) , value $($prop)" } 
} 

或者Get-ItemProperty

$item = Get-ItemProperty -Path "Registry::HKEY_CURRENT_USER\Software\NuGet" 

foreach ($prop in $item.psobject.Properties) { 
    if($prop.Value -match '0') { "Match found in key $($item.PSPath) , value $($prop.Name)" } 
} 

如果你知道值名稱,那麼它更容易使用Get-ItemPropertyWhere-Object,例如:

Get-ItemProperty -Path "Registry::HKEY_CURRENT_USER\Software\NuGet" | Where-Object { $_.IncludePrerelease -match '0' } 
+0

謝謝Frode F.下午或明天晚些時候會再看看。還有其他的東西.. –

+0

謝謝Frode F.它像一個魅力...... :-) –