我安装了 Visual Studio Code 并启用了 PowerShell 扩展
我想用一些自定义模块(如xHyper-V
和xPSDesiredStateConfiguration
.
现在的问题是,PSDesiredStateConfiguration
当我想通过Import-DSCResource
. Visual Studio Code 无法加载任何其他已安装的 DSC 资源。在 PowerShell ISE 中,一切正常,如您在此处所见(左侧是 VSCode,右侧是 ISE):
奇怪的是,这只会影响编辑器本身。在 vscode 的终端中,它会在所有模块中找到 DSC 资源。看这个例子:
PS Z:\Powershell-Scripts\DesiredStateConfiguration> Get-DscResource xVHD
ImplementedAs Name ModuleName Version Properties
------------- ---- ---------- ------- ----------
PowerShell xVHD xHyper-V 3.17.0.0 {Name, Path, DependsOn, Ensure...}
PS Z:\Powershell-Scripts\DesiredStateConfiguration> Get-DscResource WindowsFeature
ImplementedAs Name ModuleName Version Properties
------------- ---- ---------- ------- ----------
PowerShell WindowsFeature PSDesiredStateConfiguration 1.1 {Name, Credential, DependsOn, Ensure...}
它还找到模块本身:
PS Z:\Powershell-Scripts\DesiredStateConfiguration> Get-Module xHyper-V, PSDesiredStateConfiguration -ListAvailable
Verzeichnis: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 3.17.0.0 xHyper-V
Verzeichnis: C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.1 PSDesiredStateConfiguration {Set-DscLocalConfigurationManager...}
唯一的区别是它们在不同的 s 中,但是当我将模块复制到也所在的路径$env:PSModulePath
时它仍然不起作用。xHyper-V
PSDesiredStateConfiguration
有趣的是,这似乎只影响编辑器的智能感知。如果我使用自定义 DSC 模块运行配置,它仍然会*.mof
正确创建文件。
我怎样才能解决这个问题?
我试图解决的问题:
- 删除并重新安装所有自定义 DSC 模块
- 卸载 VSCode 中的 PowerShell 扩展,重新启动 VSCode 并再次安装
- 完全重新安装VSCode
掌心。有点尴尬,但在我发布此消息后 1 分钟,我找到了答案:
我也
PowerShell Core
安装了。在后面的 VSCode 的终端中打开了一个 Core Session,它不是活动的,但它仍然不知何故影响了 Intellisense。只需关闭
Core
终端,一切都会按预期工作。或者
PowerShell Core
如果$env:PSModulePath
包含 DSC 模块所在的文件夹,则签入提升的$env:PSModulePath -split ';'
. 该文件夹很可能不会在那里。使用以下命令添加它,然后在 vscode restart 和 pwsh restart 之后 IntelliSense 将始终工作,因为 pwsh 现在也会在正确的目录中查找: