Ho uno script che desidero utilizzare in modo interattivo dal prompt di PowerShell. Lo script deve utilizzare un modulo di script locale.Come posso utilizzare un modulo PowerShell in uno script senza lasciare il modulo caricato nella sessione dell'utente?
Non riesco a vedere come importare/utilizzare il modulo in modo che non venga caricato nella sessione corrente.
Esempio
un modulo (MyModule.psm1) ...
function Test-Method
{
write-host "Test-Method invoked"
}
... e uno script (script.ps1)
Import-Module .\MyModule
Test-Method
Ora l'esecuzione dello script al prompt di 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
Come può il mio script importare e utilizzare MyModule.psm1 senza che venga lasciato caricato nella sessione corrente del chiamante? Tenendo presente che la chiamata potrebbe aver già importato il modulo e non vorrebbe che fosse scaricato dallo script (quindi la semplice rimozione del modulo al completamento dello script non è veramente buona).
Ho considerato dot-sourcing il modulo piuttosto che importarlo, ma voglio il modulo per i motivi coperti in PowerShell Import-Module vs Dot Sourcing
Questo è più o meno dove avrei dovuto. Per me non si adatta affatto bene all'uso di PowerShell come shell (tradizionale) - nella misura in cui ero sicuro che mi mancasse qualcosa. –
Cosa significa "ipmo"? Non l'ho mai visto e Google non sta aiutando troppo. – jpmc26
@ jpmc26 'ipmo' è un alias per' Import-Module'. –