如何读取注册表项的值?

Joa*_*him 7 windows-registry powershell

有谁知道如何在 PowerShell 中读出注册表项值?在 CMD 中的等效请求可以在图片上看到。

等效于 CMD

And*_*ndy 7

Get-ChildItem 是一个可以使用的,一个快速的将是:

Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion'
Run Code Online (Sandbox Code Playgroud)

更多示例:https : //msdn.microsoft.com/en-us/powershell/scripting/getting-started/cookbooks/working-with-registry-keys

如果要获取特定的键值:

$val = (Get-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName').ComputerName
Run Code Online (Sandbox Code Playgroud)

以及如何正确设置/编辑 https://blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell/


Dou*_*son 5

Get-ItemPropertyValue

对于注册表操作,请使用:

  • Get-ItemPropertyGet-ItemPropertyValue读取注册表值和数据
  • Get-Item获取注册表项和子项(但不读取注册表值和数据)
  • Get-ChildItem列出键和配置单元中的子键
  • 或者,用于New-PSDrive制作注册表驱动器(默认情况下仅存在 HKCU 和 HKLM)。请注意,您也可以使用长格式而不安装(更多详细信息如下)

有关详细信息,请参阅注册表提供程序

例子

使用您的示例作为起点,即使用HKEY_USERS注册表根键,我将查找MenuBar颜色,因为您所拥有的键在我的系统上不可用。

指令管理系统

reg query "HKEY_USERS\.DEFAULT\Control Panel\Colors" /v MenuBar
Run Code Online (Sandbox Code Playgroud)

电源外壳

使用Get-ItemPropertyValue

PS C:\> Get-ItemPropertyValue 'Registry::HKEY_USERS\.DEFAULT\Control Panel\Colors' -Name MenuBar
240 240 240
Run Code Online (Sandbox Code Playgroud)

使用Get-ItemProperty

PS C:\> (Get-ItemProperty 'Registry::HKEY_USERS\.DEFAULT\Control Panel\Colors').MenuBar
240 240 240
Run Code Online (Sandbox Code Playgroud)

用于New-PSDriveHKEY_USERS挂载为HKU

PS C:\> New-PSDrive -PSProvider Registry -Root HKEY_USERS -Name HKU
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
HKU                                    Registry      HKEY_USERS
PS C:\> Get-ItemPropertyValue 'HKU:\.DEFAULT\Control Panel\Colors' -Name MenuBar
240 240 240
PS C:\>
Run Code Online (Sandbox Code Playgroud)

文档

来自注册提供商

注册表分为键、子键和条目。有关注册表结构的更多信息,请参阅注册表结构

注册表驱动器中,每个键都是一个容器。一个键可以包含任意数量的键。具有父项的注册表项称为子项。您可以使用Get-ChildItem查看注册表项并 Set-Location导航到密钥路径。

注册表值是注册表项的属性。在注册表 驱动器中,它们称为Item Properties。注册表项可以同时具有子项和项属性。

...

每个注册表项还可以有子项。当您对注册表项使用 Get-Item 时,不会显示子项。该Get-ChildItemcmdlet 将显示“Spooler”项的子项,包括每个子项的属性。使用 时不会显示父键属性Get-ChildItem

获取项目

此命令显示 Microsoft.PowerShell 注册表项的内容。您可以将此 cmdlet 与 PowerShell 注册表提供程序结合使用来获取注册表项和子项,但必须使用该Get-ItemPropertycmdlet 来获取注册表值和数据。