2011-02-24 8 views
15

웹 응용 프로그램 배포와 관련된 특정 작업을 돕기 위해 Windows 용 PowerShell 스크립트를 작성하려고합니다.PowerShell 스크립트를 통한 PowerShell 모듈 개발시기 선택

어떤 이유로 나는의 개발을 선호하거나 제외해야이되는 PowerShell을 모듈 (.psm1) 대신 PowerShell 스크립트 (.ps1입니다)을하는? 스크립트를 개발

인수

  • 단순 : 그것은 설치하는 모듈이 필요 않기 때문에 스크립트를 사용하면 좀 더 쉽게 윈도우 관리자를위한 더 간단 있음을 나는 것 (하지만 난 내가 Windows 관리자가 아니기 때문에 잘못되었을 수 있습니다!).
  • 빠른 개발 : 모듈을 개발할 때 내부 방법을 더 많이 사용하도록 프로그래밍해야합니다. 따라서 API를 설계하는 것이 더욱 엄격해야합니다.

    • 재사용 : 모듈을 개발하기

    인수이 먼저 떠오르는 것들이다 : 관리자가 자신의 스크립트에서 우리의 스크립트를 통합하고자하는 경우, 그것은 수 있습니다 스크립트를 호출하는 대신 하나 이상의 (또는 여러 개의) cmdlet을 노출하는 모듈을 쉽게 재사용 할 수 있습니까?

  • ...

당신은 PS의 PS 모듈 대 스크립트, 또는 각 선택의 기술적 한계의 일반적인 사용 사례를 알고 있다면, 그것은 도움이 될 수 있습니다. 모듈은 당신을 위해 무엇을 할 수 있는지 이해하기

+1

생각 : 코드를 만들 때 스크립트로 만듭니다. 그런 식으로 "빠른 개발"이점을 얻을 수 있습니다.작동중인 스크립트가 있으면 모듈로 이전합니다 (예 : 기능을 가로 질러 복사, 문서 추가, 일반적으로 완전히 패키지되었는지 확인). 이렇게하면 개발자의 사고 방식에서 신속하게 작동하는 기능을 얻은 다음 재사용을 위해 리펙토링/리 패키징 할 때 설계자의 사고 방식으로 전환 할 수 있습니다. – JohnLBevan

답변

17

이 읽기 ​​: 너트 쉘에서 http://msdn.microsoft.com/en-us/library/dd878310(v=vs.85).aspx

의 Windows PowerShell 모듈을 사용하면, 파티션을 구성 할 수 있습니다 , 자기에 당신의 Windows PowerShell 코드 추상적 포함 된, 재사용 가능한 단위. 이러한 재사용 가능한 단위를 사용하면 관리자, 스크립트 개발자 및 cmdlet 개발자가 모듈을 다른 사람들과 직접 쉽게 공유 할 수 있습니다. 스크립트 개발자는 타사 모듈을 다시 패키지화하여 사용자 지정 스크립트 기반 응용 프로그램을 만들 수도 있습니다. Perl 및 Python과 같은 다른 스크립팅 언어의 모듈과 유사한 모듈은 재사용 가능하고 재배포 가능한 구성 요소를 사용하는 프로덕션 - 준비 스크립팅 솔루션을 구현하고 여러 구성 요소를 재 패키징 및 추상화하여 맞춤형 솔루션을 만들 수 있습니다.

스크립트에 이미 기능이 있고 단일 작업을 수행하기 위해 작성된 것이 아닌 경우 .PSM1로 이름을 바꿔 모듈로 변환 할 수 있습니다. 물론 함수를 사용하지 않는다면 .ps1을 선택하는 것 외에는 선택의 여지가 없습니다. 이 경우 각 .ps1이 단일 작업을 수행하는 데 사용됩니다. 나는 다른 사람들과 쓰는 스크립트를 공유 할 때 항상 모듈을 선호한다.

8

나는 기능/변수를 "숨기고"내가 원하는 것을 내보내는 기능을위한 모듈을 좋아한다.

+0

감사합니다. 흥미로운 점이 있습니다 만, 다른 함수 안에 함수를 중첩하여 스크립트에서 동일한 동작을 제공 할 수 있다고 생각합니다. – Olivier

+1

사실입니다. 그러나 "숨겨진"기능을 다른 여러 기능에서 사용해야하는 경우에는 다소 혼란 스럽습니다. –