2011-02-24 87 views
15

我要寫一PowerShell腳本的Windows管理員,以幫助他們在涉及到Web應用程序的部署某些任務。當選擇一個PowerShell模塊的開發在PowerShell腳本

是否有任何理由,我應該贊成或排除的發展的PowerShell模塊(名爲.psm1)而不是做一個PowerShell腳本(名爲.ps1)

參數,開發腳本

  • 簡單:我的東西,使用的腳本是更容易一點和Windows管理員更簡單,因爲它並不需要安裝的模塊(但我可能是錯誤的,因爲我不是Windows管理員!)。
  • 更快發展:開發一個模塊需要更加仔細的編程方法內部曝光,它就像設計一個API的。因此必須更加嚴格。

參數開發模塊

  • 重用:這是我想到的第一件事情:如果管理員想我們的腳本在自己的腳本集成,它可能是他更容易重用暴露一個(或幾個)cmdlet的模塊,而不是調用我們的腳本?
  • ...

如果你知道PS腳本對於PS模塊或每個選擇的技術限制的共同使用的情況下,它可能會有所幫助。

+1

一個念頭:創建代碼時,將其創建爲一個腳本;這樣你就可以獲得「更快的開發」效益。一旦你已經有了一個工作腳本,將它遷移到一個模塊中(即複製功能,添加文檔,通常確保它完全打包);通過這種方式,您可以在開發人員的思維模式下快速實現功能,然後在重構/重新包裝以供重用時更改爲架構師思維模式。 – JohnLBevan 2015-06-24 10:42:57

回答

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 2011-02-25 11:16:25

+1

確實如此,但是如果需要使用其他幾個函數來使用「隱藏」功能,那麼您會遇到困難。 – 2011-02-25 18:00:31