
Visual Studio Code가 설치되어 있고 PowerShell 확장이 활성화되어 있습니다.
xHyper-V
및 와 같은 일부 사용자 정의 모듈을 사용하여 원하는 상태 구성을 작성하고 싶습니다 xPSDesiredStateConfiguration
.
이제 문제는 Visual Studio Code가 .NET을 PSDesiredStateConfiguration
통해 가져오려는 경우 기본 리소스인 DSC 리소스 만 찾는다는 것입니다 Import-DSCResource
. 설치된 다른 DSC 리소스는 Visual Studio Code에서 로드할 수 없습니다. 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
재미있는 점은 이것이 편집기의 IntelliSense에만 영향을 미치는 것 같다는 것입니다. 사용자 지정 DSC 모듈을 사용하여 구성을 실행하면 여전히 파일 *.mof
이 올바르게 생성됩니다.
이 문제를 어떻게 해결할 수 있나요?
문제를 해결하기 위해 내가 시도한 방법은 다음과 같습니다.
- 모든 맞춤형 DSC 모듈을 삭제하고 다시 설치했습니다.
- VSCode에서 PowerShell 확장을 제거하고 VSCode를 다시 시작한 후 다시 설치했습니다.
- VSCode를 완전히 다시 설치했습니다.
답변1
페이스팜. 약간 당황스럽긴 하지만 이 글을 게시한 지 1분 만에 답을 찾았습니다.
저도 PowerShell Core
설치했습니다. 뒷면의 VSCode 터미널에 One Core Session이 열렸는데, 활성 세션은 아니었는데 어쩐지 여전히 Intellisense에 영향을 미치더군요.
간단히 Core
터미널을 닫으면 모든 것이 예상대로 작동합니다.
또는
DSC 모듈이 있는 폴더가 포함된 PowerShell Core
경우 관리자 권한으로 체크인하세요 . 폴더가 거기에 없을 가능성이 높습니다. 다음 명령을 사용하여 추가한 다음 vscode를 다시 시작하고 pwsh를 다시 시작한 후에는 이제 pwsh도 올바른 디렉터리를 검색하므로 IntelliSense가 항상 작동합니다.$env:PSModulePath
$env:PSModulePath -split ';'
$CurrentValue = [Environment]::GetEnvironmentVariable("PSModulePath", "Machine")
[Environment]::SetEnvironmentVariable("PSModulePath", $CurrentValue + [System.IO.Path]::PathSeparator + "C:\Program Files\WindowsPowerShell\Modules", "Machine")