较新版本的 PowerShell ISE(以及第三方 PowerShell 脚本环境,如 PowerGUI)提供了非常好的 IntelliSense 支持。
但是,我经常编写要在仅安装了旧版本 PowerShell(特别是 Windows Server 2008 R2 上的 PowerShell 2.0)的服务器上运行的脚本。我无法升级服务器上的 PowerShell 安装,并且 PowerShell 2.0 ISE 没有 IntelliSense。
有没有办法配置 PowerShell 3.0 或 4.0 ISE,或 PowerGUI(或任何其他免费的 PowerShell 脚本编辑器!)来提供仅限于 PowerShell 2.0 兼容代码的 IntelliSense?
最佳答案
我已经确认 Jason 的理论,即 Intellisense 确实可以针对已安装的 Powershell 版本在 PSRemoting 中工作,但它看起来有点不同。我使用 Powershell 预览版 5.0.10018.0 远程处理到带有 PS v2.0 的 Server 2008R2 进行了测试。我跑了:
$Procs = Get-Process
$Procs <Ctrl + Space>
这导致了一个 Intellisense 工具提示,其中包含以下选项:
$Procs.count
$Procs.Clear(
v3.0 及更高版本仅包含属性或方法名称,而不包含变量本身。
我还测试了 Intellisense 中没有出现的 .Where() 和 .Foreach() 魔术方法。这似乎证实它适用于已安装的版本。
关于针对旧版本 PowerShell 的 PowerShell IntelliSense,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28756953/