简单查询在Powershell中不起作用,但在Powershell上起作用

简单查询在Powershell中不起作用,但在Powershell上起作用,powershell,powershell-ise,Powershell,Powershell Ise,有人能告诉我为什么下面的命令在Powershell和Powershell中有不同的结果吗 $Software = "*Native*SQL*" $Result = Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | Get

有人能告诉我为什么下面的命令在Powershell和Powershell中有不同的结果吗

 $Software = "*Native*SQL*"  
 $Result = Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | Where-Object {$_.DisplayName -like $Software}
Powershell:$Result提供所需的数据
Powershell_ISE:$Result不提供任何数据

对于测试,我在ISE中的支持机器上打开了脚本,并想知道为什么即使输出出现在注册表中,也找不到SQL本机客户端

在另一台计算机上,它在两种环境下都能正常工作。
我在一个软件分发的团体策略中使用了这个,我想知道为什么在400台计算机中只有大约250台安装了软件

操作系统:Windows 10-20H2和Windows 10 1909


致以最良好的祝愿

您是否碰巧运行了32位版本的ISE(x86)?检查PowerShell ISE的两个环境中的IS64位进程:它是和(底部部分),尤其是无法运行PowerShell[Core]6+。积极开发的编辑器提供了跨平台的最佳PowerShell开发体验,它与其PowerShell扩展相结合。@mklement0感谢您的提示。这真是太遗憾了,因为我真的认为ISE环境对我很好。我主要使用这些片段在ISE中完成日常任务。在开发脚本时,我主要使用函数并在ISE中进行开发。我将看一看Visual Studio代码,然后我想我最好切换@Daniel4711要回答“为什么”,您需要了解-尝试解析
HKLM:\SOFTWARE\…
的32位进程透明地重定向到
HKLM:\SOFTWARE\Wow6432Node\…
,因此只能看到软件子目录下的“一半”条目key@mklement0我已经安装了VSC,并将熟悉它。非常感谢!