gpt4 book ai didi

PowerShell 使用第三方模块而不安装它

转载 作者:行者123 更新时间:2023-12-04 21:56:31 25 4
gpt4 key购买 nike

我相信这是可能的,但找不到任何有用的东西。
我写了一个局域网扫描仪脚本。为了尽可能地自动化事情,我不依赖用户的任何输入。该脚本检查本地接口(interface) IP 地址并使用缩进网络工具模块来计算可能的 IP 地址数量和每个 ping。

问题是因为我使用的是第三方工具,所以我必须将它安装在我想使用这个脚本的任何机器上。有没有办法可以将这个第三方模块包含在我的脚本中,比如将它们放在同一个文件夹中而不必单独安装?

最佳答案

这实际上取决于您希望如何将模块部署到其他机器。如果您想在网络共享上共享它或分发一个 zip 包,那么您可以将这些依赖项与您的模块一起包含。就放Indented.CommonIndented.NetworkTools在您的脚本定义的一个目录中,如下所示:

MyModule/
└╴MyModule.psm1
└╴Indented.Common/
└╴IndentedNetworkTools/

然后,您可以直接从 MyModule.psm1 加载这些模块(不将它们安装到全局模块路径):
import-module $psscriptroot\Indented.Common\Indented.Common.psm1
import-module $psscriptroot\Indented.NetworkTools\Indented.NetworkTools.psm1

就是这样。如果您有一个普通的 .ps1,而不是 .psm1 模块,这也将起作用。

也许更优雅的方式是使用 WMF5 PackageManagement .声明 Indented.NetworkTools作为 MyModule.psd1 中的依赖项 (NestedModules) ,然后 publish it on PSGallery .然后,你可以说 Install-Module MyModule在其他机器上 - 这将安装 MyModule它是依赖项。

这种方法的问题是任何声明的依赖项都必须在 PowershellGallery 上可用( Indented.* 模块不可用)。

关于PowerShell 使用第三方模块而不安装它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39522436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com