2014-12-22 88 views
1

有沒有辦法在PowerShell模塊導入會話時調用一些初始化代碼(例如創建數據庫)?如何在導入PowerShell模塊時執行自定義方法?

舉例來說,如果我有一個包含組件:

class DBBuilder 
{ 
    Init() 
    { 
     // Initialize database 
    } 
} 

和PS模塊調用MyModule.psd

然後我想Import-Module MyModule調用DBBuilder.Init()

回答

0

如果你使用模塊清單(實際上是.psd1,而不是.psd),則可以將代碼放置在.ps1腳本文件中,並從清單中引用它:

# Script files (.ps1) that are run in the caller's environment prior to importing this module 
# ScriptsToProcess = @('.\dbini.ps1') 

要執行.NET代碼,您必須加載組件:

[Reflection.Assembly]::LoadFile("c:\test\db.dll") 

,並調用方法:

[{yournamespace}.DBBuilder]::Init()