제목을 보면 꽤 명확하지만 어쨌든 더 자세히 묻습니다. 그래서 모듈에서 도우미 함수를 내보내고 코드에서 다시 사용할 수 있도록 할 수 있는지 여부는 문제입니다. 그러나 사용자에게만 국한되므로 콘솔에서 호출 할 수 없습니다.사용자로부터 내 보낸 PowerShell 함수 숨기기
미리 감사드립니다.
제목을 보면 꽤 명확하지만 어쨌든 더 자세히 묻습니다. 그래서 모듈에서 도우미 함수를 내보내고 코드에서 다시 사용할 수 있도록 할 수 있는지 여부는 문제입니다. 그러나 사용자에게만 국한되므로 콘솔에서 호출 할 수 없습니다.사용자로부터 내 보낸 PowerShell 함수 숨기기
미리 감사드립니다.
물론, 당신은 당신이 (PSM 파일)과 같이 수출을 지정해야합니다
Export-ModuleMember -Function Verb-Noun
에만이 하나 개의 함수와 PSD 파일에 내보내는 것
:
FunctionsToExport = 'Verb-Noun'
지금 당장이 기능을 사용할 수 있지만이 기능을 사용하면 모듈을 분리 할 수있을뿐만 아니라 콘솔에서도 호출 할 수 있습니다. – SokIsKedu
미안 해요, 당신이하는 말을 이해할 수 없어요. 다시 말해 줄 수 있니? 내게 그것은 예상대로 작동합니다 :'Get-Command -Module mymodule'은 단지 하나의 명령만을 반환합니다. 예제를 추가 하시겠습니까? @SokIsKedu – 4c74356b41
질문 자체에 대한 의견을 읽으십시오. 그는 다른 모듈에서 사용할 수 있지만 사용자는 사용할 수없는 메서드가 필요합니다. –
을 나는 이것이 당신이 원하는대로 가능한 것이라고 생각하지 않습니다. 내가 처리 할 수있는 방법은 모든 숨겨진 명령을 포함하지만 도우미 모듈의 일부로로드하지 않는 도우미 모듈에 PS1 파일을 저장하는 것입니다. 그런 다음에 의존하는 모듈에서 PS1 도우미 파일을 점으로 찍으면 모든 스크립트를 가져와 사용할 수 있습니다.
예는 도우미 모듈을 필요로하는 모듈 :
. $PSScriptRoot\..\HelperModule\HelperModuleInternal.ps1
은 분명히 도우미 모듈의 이름과 각각 숨겨진 명령 PS1 파일 HelperModule 및 HelperModuleInternal를 교체하십시오. psm1 파일로 만들면 ISE가 열립니다.
잘 모르겠지만 숨겨진 명령을 내보내려고 시도 할 수도 있습니다.이 경우에는 내가 다루는 깔끔한 트릭을 읽습니다. 공개 된 모든 명령을 보통 Verb-Noun
구문으로 호출하고 마지막에 Export-ModuleMember -Function "*-*"
을 입력하십시오. 그런 다음 내부 명령어의 경우이 이름과 일치하지 않는 이름을 사용하십시오 (예 : Verb_Noun
또는 VerbNoun
). 아주 깔끔하다.
코드에서 다시 사용할 수 있다고 말하면 모듈의 코드, 모듈 외부의 스크립트, 별도의 모듈을 언급하고 있습니까? –
사용자 콘솔에서 해당 기능을 사용할 수 없도록 별도의 모듈에서 특정 기능을 사용해야합니다. – SokIsKedu