小编Mar*_*ght的帖子

如何在脚本中使用PowerShell模块而不会在用户会话中加载模块?

我有一个脚本,我希望从PowerShell提示符交互使用.该脚本需要使用本地脚本模块.

我无法看到如何导入/使用模块,使其不会在当前会话中被加载.

一个模块(MyModule.psm1)......

function Test-Method
{
    write-host "Test-Method invoked"
}
Run Code Online (Sandbox Code Playgroud)

...和脚本(script.ps1)

Import-Module .\MyModule
Test-Method
Run Code Online (Sandbox Code Playgroud)

现在在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
Run Code Online (Sandbox Code Playgroud)

我的脚本如何导入并使用MyModule.psm1而不将其保留在调用者的当前会话中?请记住,调用可能已经导入了模块,并且不希望它被脚本卸载(因此只需在脚本完成时删除模块就不够了).

我考虑过点源模块而不是导入它,但我想要这个模块的原因包括PowerShell Import-Module和Dot Sourcing

powershell powershell-3.0

7
推荐指数
2
解决办法
2万
查看次数

标签 统计

powershell ×1

powershell-3.0 ×1