2008-12-04 72 views
8

我聽說powershell 2.0 CTP有模塊,但我找不到很多示例代碼或說明。我讀過似乎在網上有什麼小幫助...如何創建PowerShell 2.0模塊?

但我只是不斷收到「術語'添加模塊'不被識別爲cmdlet ...」當我嘗試加載模塊。

任何幫助將感激地收到!

編輯(2010年7月) 請注意,這個問題是基於PowerShell的2.0 CTP,因此是一年半過時了!請參閱Samuel Jack的回答以獲取有關PowerShell 2.0 RTM的幫助。

+0

等待幾個星期,你的願望將實現CTP3。 – halr9000 2008-12-09 04:05:20

回答

9

在Win7構建中,添加模塊不見了。新的cmdlet是Import-Module。創建模塊的最簡單方法是將PS1文件重命名爲PSM1文件。從那裏你可以做各種各樣的事情,包括模塊清單。

+0

導入模塊也不起作用。實際上,沒有其中包含單詞模塊的命令: gcm | ?{$ _。Name.Contains(「Module」)} | fl名稱 哦,那麼我會等到CTP 3瞭解更多! – 2008-12-17 12:44:14

0

Windows PowerShell v2.0:TFM(sapienpress.com)在其中一章中提供了信息和示例。它可以作爲電子書,隨着新CTP的發佈而更新。我也在ConcentratedTech.com上對他們進行了博客,並且在論壇中的PowerShellCommunity.org上對他們進行了討論。

1

模塊將有望解決一些問題。現在,我們可以使用點源獲取函數,變量和腳本到PowerShell會話的全局範圍。

問題是,這可能會污染您的會話與各種全局變量和幫助函數,最終用戶可能不希望/直接需要。

模塊將允許您作爲作者構建腳本,並僅向模塊的最終用戶提供某些功能/變量。

它們也基本上代替了PSSnapin的概念。您可以使用Add-Module Some.dll來添加包含cmdlet的程序集。

什麼是真正的酷是所謂的模塊清單。這是一個散列表,基本上指定了各種依賴以及作者,名稱,GUID標識符和版本號。當用戶加載具有模塊清單的模塊時,它將檢查所有依賴關係並運行模塊作者認爲必要的任何腳本。

CTP3發貨時應該有一些體面的文檔。

希望能有所幫助。

Andy

3

我不是Powershell專家,但這裏是我剛剛發現的使用PowerShell 2.0 RTM。

假設你想創建一個名爲MyModule的模塊:

  1. 確保您已創建的文件夾%我的文檔%\ WindowsPowershell \模塊
  2. 創建內部模塊文件夾叫做MyModule
  3. 把你的代碼放在的文件裏面MyModule和n ame文件MyModule.psm1
  4. 請記住使用Export-ModuleMember命令作爲腳本文件中的最後一件事。 Export-ModuleMember -Function * -Alias *將導出的所有功能和別名
  5. 在您要使用的模塊,使用命令Import-Module MyModule

默認情況下,PowerShell是配置爲不從文件中運行任何類型的腳本,所以你需要修改腳本,安全設置。 Set-ExecutionPolicy Unrestricted會讓你走,如果你不關心需要簽名的腳本。