파워셸 가져오기 모듈이 모듈을 찾지 못함
저는 PowerShell을 배우고 있으며 저만의 모듈 라이브러리를 구축하려고 합니다.
간단한 모듈을 작성했습니다.XMLHelpers.psm1그리고 내 폴더에 넣었습니다.$home/WindowsPowerShell/Modules.
내가 할 때:
import-module full_path_to_XMLHelpers.psm1
그건 효과가 있다.하지만 내가 할 때:
import-module XMLHelpers
작동하지 않고 오류가 발생합니다.
가져오기-모듈 : 모듈 디렉터리에 올바른 모듈 파일이 없기 때문에 지정한 모듈 'xml 도우미'가 로드되지 않았습니다.
제가 확인한 바로는 환경 변수가PSModulePath이 폴더를 포함합니다.네트워크 폴더이기 때문에 로컬 폴더로 이동하여 수정하려고 했습니다.PSModulePath그러나 성공하지 못한.
$env:PSModulePath=$env:PSModulePath+";"+'C:\local'
이 문제의 원인이 무엇인지 아십니까?
모듈은 모듈과 이름이 같은 폴더에 배치해야 합니다.당신의 경우:
$home/WindowsPowerShell/Modules/XMLHelpers/
전체 경로는 다음과 같습니다.
$home/WindowsPowerShell/Modules/XMLHelpers/XMLHelpers.psm1
그러면 다음을 수행할 수 있습니다.
import-module XMLHelpers
1.현재 폴더에서 XMLHelpers/XMLHelpers.psm1을 검색합니다.
Import-Module (Resolve-Path('XMLHelpers'))
2.현재 폴더에서 XMLHelpers.psm1을 검색합니다.
Import-Module (Resolve-Path('XMLHelpers.psm1'))
내 생각에 그것은Import-Module기본 디렉토리에서 모듈을 찾으려고 합니다.C:\Windows\System32\WindowsPowerShell\v1.0\Modules.
전체 경로를 넣거나 복사합니다.C:\Windows\System32\WindowsPowerShell\v1.0\Modules
저는 같은 오류를 경험했고 성공하기 전까지 많은 것을 시도했습니다.해결책은 스크립트의 경로를 다음과 같이 모듈의 상대 경로에 추가하는 것이었습니다.
// Note that .Path will only be available during script-execution
$ScriptPath = Split-Path $MyInvocation.MyCommand.Path
Import-Module $ScriptPath\Modules\Builder.psm1
하지만 당신은 다음과 같은 http://msdn.microsoft.com/en-us/library/dd878284(v=vs.85).aspx 을 봐야 합니다.
윈도우즈 PowerShell 3.0부터는 모듈의 cmdlet 또는 함수가 명령에 사용될 때 모듈을 자동으로 가져옵니다.이 기능은 PSModulePath 환경 변수($env:PS 모듈 경로)
저는 이 문제가 있었지만 ISE가 아닌 Visual Studio Code에서만 발생했습니다.VSCode에서 x86 세션을 사용하고 있었습니다.PowerShell Session Menu(PowerShell 세션 메뉴)를 표시하고 x64 세션으로 전환했더니 모든 모듈이 풀 경로 없이 작동하기 시작했습니다.VSCode의 아키텍처 x64 버전 1.17.2를 사용하고 있습니다.모듈이 C:에 저장되었습니다.\Windows\시스템32\Windows PowerShell\v1.0\Modules 디렉토리.
일부 플러그인을 실행하려면 플러그인이 필요합니다.Administrator셸에 활성화된 자격 증명이 없으면 로드되지 않습니다.
Windows 7에서 PS 5.0을 사용한 결과:$ENV:PsModulePatha 끝야합니로 .이는 일반적으로 해당 경로에 있는 모든 모듈을 로드한다는 것을 의미합니다.
모듈을 $하여 $env:PsModulePath로 할 수 Import-Module ExampleModule 전체 를 사용해야 를 들어, 모에대전경사용합야니다해를로듈.C:\MyModules\ExampleModule나는 그것이 효과가 있었다고 확신합니다.
예:모듈이 있다고 가정합니다.
C:\MyModules\ExampleModule
C:\MyModules\FishingModule
추가해야 합니다.C:\MyModules\$env:PsModulePath은 가 할 수 있게 입니다.
Import-Module ExampleModule
Import-Module FishingModule
어떤 이유에서인지, 나는 원하지 않았습니다.FishingModule추가할 수 있을 것 같아서요C:\MyModules\ExampleModule(추락 \"은 없습니다), 하지만 이것은 지금 작동하지 않는 것 같습니다.그것을 싣기 위해, 나는 해야 합니다.Import-Module C:\MyModules\ExampleModule
두, 흥롭게도모, 경두서에우두미,서▁doing▁interest두모에두,,Get-Module -ListAvailable에는 모듈이 표시되지만 가져올 수 없습니다.그래도 모듈의 cmdlet은 작동하는 것 같습니다.
AFAIK는 자동 가져오기가 작동하려면 함수 이름을 매니페스트(.psd1) 파일의 FunctionsToExport에 추가해야 합니다. 추가하기FunctionsToExport = '*'자동 부하를 차단합니다.아직 할 수 있습니다.Export-ModuleMember -Function *모듈 파일(.psm1)에 있습니다.
이것들이 제 연구 결과입니다.변화가 있었거나 내 컴퓨터가 고장났는지는 두고 봐야 합니다. HTH
파워셸에서 아래를 사용해 보십시오.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
import-module [\path\]XMLHelpers.psm1
[] 대신 전체 경로 지정
먼저 계정 유형을 선택하십시오. 일부 가져오기는 일반 파트너 계정으로 허용되지 않습니다.
언급URL : https://stackoverflow.com/questions/6412921/powershell-import-module-doesnt-find-modules
'programing' 카테고리의 다른 글
| pjax는 어떻게 작동하나요? (0) | 2023.08.23 |
|---|---|
| mysql에서 null 날짜를 확인하는 방법은 무엇입니까? (0) | 2023.08.23 |
| 지정한 스키마 이름이 없거나 사용 권한이 없습니다. (0) | 2023.08.23 |
| 정의되지 않은 '모드' 속성을 읽을 수 없습니다. (0) | 2023.08.18 |
| jQuery 페이지 하단으로 스크롤 (0) | 2023.08.18 |