我有以下问题:
我尝试从注册表中获取所有可卸载的应用程序并(gp 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*').DisplayName -Like '*'
用作命令。在 x86 版本的 Powershell 中,它返回应用程序列表,但在 x64 版本中,我收到此错误:
PS C:\Users\simon> (gp 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*').DisplayName -Like '*'
gp : Die angegebene Umwandlung ist ungültig.
In Zeile:1 Zeichen:2
+ (gp 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*').Di ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-ItemProperty], InvalidCastException
+ FullyQualifiedErrorId : System.InvalidCastException,Microsoft.PowerShell.Commands.GetItemPropertyCommand
该gp
命令本身似乎有效。上面的命令也适用于其他系统上的 x64 Powershell。
我试过的:
gp
验证 Powershell 是否知道此命令。[intPtr]::size
检查它的 x86/x64- 重新安装 Powershell(通过
optionalfeatures.exe
) - 安装了新的 .NET 框架
- 尝试了其他系统上的命令(它们有效)
- 以管理员身份运行 Powershell
- 更改了
path
Powershell.exe 的(作为环境变量)(默认使用 x86,但这会导致其他问题 - 没关系)
我没有想法,谷歌也没有让我走得更远。
[解决方案]
我发现此错误是由注册表中 NetBeans 安装REG_DWORD
属性的无效值引起的。NoModify