get-itemproperty不返回所有属性

时间:2012-08-30 14:36:39

标签: powershell

希望你能帮忙......

执行以下powershell(我是新手btw)来获取注册表项的值,当我执行第一个powershell语句时,我得到了我期望的所有属性,但是当我对VisualStudio执行第二个语句时10.0它没有返回属性,即使在注册表编辑器中有一堆属性(包括我正在追逐的InstallDir!)盯着我的脸。你能帮帮忙吗?

由于

PS C:\DEV\GeoMet> Get-ItemProperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion


    PSPath                   : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
    PSParentPath             : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
    PSChildName              : CurrentVersion
    PSDrive                  : HKLM
    PSProvider               : Microsoft.PowerShell.Core\Registry
    SM_GamesName             : Games
    SM_ConfigureProgramsName : Set Program Access and Defaults
    CommonFilesDir           : C:\Program Files\Common Files
    CommonFilesDir (x86)     : C:\Program Files (x86)\Common Files
    CommonW6432Dir           : C:\Program Files\Common Files
    DevicePath               : C:\Windows\inf
    MediaPathUnexpanded      : C:\Windows\Media
    ProgramFilesDir          : C:\Program Files
    ProgramFilesDir (x86)    : C:\Program Files (x86)
    ProgramFilesPath         : C:\Program Files
    ProgramW6432Dir          : C:\Program Files


PS C:\DEV\GeoMet> Get-ItemProperty -path HKLM:\SOFTWARE\Microsoft\VisualStudio\10.0
PS C:\DEV\GeoMet> 

2 个答案:

答案 0 :(得分:1)

您几乎肯定会在64位计算机上查看 32位注册表。仔细检查您的注册表路径 - 它真的是HKLM\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0吗?

我在32位密钥中看到属性(例如InstallDir),但没有看到64位密钥。

如果是这样,这将是正确的查询:

Get-ItemProperty -path HKLM:\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0

答案 1 :(得分:0)

这是我在注册表中看到的:

enter image description here

因此,您从Get-ItemProperty获得的输出是正确的。对于你提到的另一条路径,你会发现有很多值。

您可以使用Get-ChildItem cmdlet获取在调试器等10.0下看到的内容。