PowerShell プロンプトから対話的に使用したいスクリプトがあります。スクリプトは、ローカル スクリプト モジュールを使用する必要があります。
現在のセッションにロードされたままにならないように、モジュールをインポート/使用する方法がわかりません。
例
モジュール (MyModule.psm1)...
function Test-Method
{
write-host "Test-Method invoked"
}
... とスクリプト (script.ps1)
Import-Module .\MyModule
Test-Method
PowerShellプロンプトでスクリプトを実行しています...
PS C:\temp> Get-Module | % {$_.Name}
Microsoft.PowerShell.Management
Microsoft.PowerShell.Utility
PS C:\temp> .\script.ps1
Test-Method invoked
PS C:\temp> Get-Module | % {$_.Name}
Microsoft.PowerShell.Management
Microsoft.PowerShell.Utility
MyModule
MyModule.psm1 を呼び出し元の現在のセッションにロードしたままにせずに、スクリプトで MyModule.psm1 をインポートして使用するにはどうすればよいですか? 呼び出しによってモジュールが既にインポートされている可能性があり、スクリプトによってアンロードされたくない場合があることに注意してください (したがって、スクリプトの完了時にモジュールを単に削除するだけでは十分ではありません)。
モジュールをインポートするのではなくドットソーシングすることを検討しましたが、PowerShell Import-Module vs Dot Sourcingで説明されている理由でモジュールが必要です