所以我有一个powershell命令来获取注册表项。但是当使用select-pattern时,它总是在一行内粘贴整个键,我一直在到处搜索,但没有地方告诉我如何只从行中抓取某些语言,而不返回完整的喜欢。像下图:
Line : @{t0_recursive=\ad; t7_recursive=\adchrolit; t5_recursive=\adarolit; t3_recursive=k:;
t9_recursive=\adfwrolit; t10_recursive=\adlarolit; t15_recursive=\adslrolit;
t6_recursive=\adbrolit; t11_recursive=\admirolit; t14_recursive=\adsfrolit;
t12_recursive=\adnyrolit; t2_recursive=j:; t16_recursive=\adenfcases; t1_recursive=f:;
t8_recursive=\addrolit; t4_recursive=m:; t13_recursive=\adplrolit; t17_recursive=C:ENFProcessing;
t129=c:enfprocessing; t99=\adslrolit; t9=\ad; t84=\adsfrolit; t69=\adplrolit; t54=\adnyrolit;
t39=\admirolit; t279_recursive=C:Users; t264=\adfwrolit; t249=\addrolit; t24=\adlarolit;
t234=\adchrolit; t219=\adbrolit; t204=\adarolit; t159_recursive=\AD.SEC.GOVProjects;
t144_recursive=\AD.SEC.GOVusers; t114=\adenfcases;
PSPath=Microsoft.PowerShell.CoreRegistry::HKLMSOFTWAREPoliciesAdobeAdobe
AcrobatDCFeatureLockDowncTrustedFolderscAlwaysTrustedForJavaScript;
PSParentPath=Microsoft.PowerShell.CoreRegistry::HKLMSOFTWAREPoliciesAdobeAdobe
AcrobatDCFeatureLockDowncTrustedFolders; PSChildName=cAlwaysTrustedForJavaScript;
PSProvider=Microsoft.PowerShell.CoreRegistry}
我得到这个输出,但不能只返回PSPath和C:Users*,它总是返回整行。
为什么会这样?
$value = Get-ChildItem -Path 'Registry::HKEY_CURRENT_USERSOFTWAREAdobeAdobe AcrobatDCTrustMangercTrustedFolder' 2>NULL | findstr : | measure-object -line | select-object -expandproperty lines ; if ( $value -lt 1 ) { echo 'PASSED, HKEY_CURRENT_USERSOFTWAREAdobeAdobe AcrobatDCTrustMangercTrustedFolder is NULL' } else { $value2 = Get-ChildItem -Path 'Registry::HKEY_CURRENT_USERSOFTWAREAdobeAdobe AcrobatDCTrustMangercTrustedFolder' -Recurse | ForEach-Object {Get-ItemProperty -Path $_.PSPath -Name t*} |Select-String -Pattern 'c:\users*' | select -ExpandProperty Line| findstr /i /V /c:Desktop, /c:downloads|format-list LineNumber,Line
我试着用谷歌搜索如何在powershell中编辑行,但无济于事。
取出findstr。它将对象转换为字符串。
get-childitem的输出对于注册表来说有点混乱。格式化文件$PSHOMERegistry.format.ps1xml
运行get-itemproperty。使用get-itemproperty获取注册表值。
我有一个可以用于递归搜索的get-itemproperty的替代品:使用PowerShell在注册表项和值中搜索字符串
例如:
get-childitem -recurse hklm:softwareadobe | get-itemproperty2 |
? name -like distiller*
Path Name Value Type
---- ---- ----- ----
HKLM:softwareadobeAcrobat Distiller10.0Uninstall Distiller 1 DWord