2012-08-17 2 views
1

모든 powershell 함수를 ps1 파일에 작성했습니다.생산 환경에 powershell 모듈을 배송하는 방법은 무엇입니까?

또 다른 ps1 파일에서 점을 소싱 중이며 기능이 호출 중입니다.

내가 더 나은 방법을 찾았을 때 나는 모든 기능을 모듈 (.psm1)로 두는 것이 더 좋은 선택이라는 것을 알게되었다.

하지만 .ps1 파일의 경우 폴더에 넣어서 간단히 보낼 수 있습니다.

.psm1 파일로 가져올 수 있도록 파일을 특정 위치에 추가해야한다고 나와 있습니다.

.psm1 파일을 고객에게 제공하는 방법은 무엇입니까? 그것을 사용하기 전에 언급 된 위치로 복사하도록 지시해야합니까? (msi를 통해 배송하지 않는 경우)

답변

3

기술적으로는 경로를 통해 psm1 파일을 가져올 수 있지만 이는 최상의 사용자 경험이 아닙니다. 이 파일을 $ home \ documents \ WindowsPowerShell \ Modules 또는 $ pshome \ Modules 폴더에 저장하면 사용자는 psm1 파일 이름을 기반으로 가져올 수 있습니다. 마지막으로 psm1 파일을 원하는 위치에 넣을 수 있으며 PSModulePath 환경 변수를 수정하여 해당 디렉토리를 포함 시키면 PowerShell은 해당 디렉토리에서 모듈을 검색합니다.

+0

그의 질문의 특정 섹션 부분에 대해서는, 내가 아는 한 실제로 그렇게 요구되지 않습니다. 닷 소싱 대신 import-Module modulepath.psm1을 실행합니다. 그러나 Export-ModuleMember cmdlet을 PSM1 파일에 추가 할 수 있습니다. 이 작업이 완료되면 가져올 수있는 모든 멤버를 내 보내야합니다. export-modulemember를 생략하면 기본적으로 PSM1의 모든 모듈이 내보내집니다. –

+0

'Export-ModuleMember'를 생략하면 모든 함수를 내보내지만 변수는 모두 내 보내지 않습니다. –