Jun*_*aid 5 powershell powershell-module
我相信这是可能的,但找不到任何有用的东西。我写了一个局域网扫描仪脚本。为了尽可能自动化,我不依赖用户的任何输入。该脚本会检查本地接口 IP 地址并使用缩进网络工具模块来计算可能的 IP 地址和每次 ping 的数量。
问题是因为我使用的是第三方工具,所以我必须将它安装在我想使用这个脚本的任何机器上。有没有办法可以在我的脚本中包含这个第三方模块,比如将它们放在同一个文件夹中而不必单独安装?
这实际上取决于您希望如何将您的模块部署到其他机器上。如果您想在网络共享上共享它或分发 zip 包,那么您可以将这些依赖项与您的模块一起包含在内。只要把Indented.Common
和Indented.NetworkTools
在一个目录中有你的脚本定义,就像这样:
MyModule/
??MyModule.psm1
??Indented.Common/
??IndentedNetworkTools/
Run Code Online (Sandbox Code Playgroud)
然后,您可以直接从MyModule.psm1
(无需将它们安装到全局模块路径)加载这些模块:
import-module $psscriptroot\Indented.Common\Indented.Common.psm1
import-module $psscriptroot\Indented.NetworkTools\Indented.NetworkTools.psm1
Run Code Online (Sandbox Code Playgroud)
就是这样。如果您有一个普通的.ps1,而不是一个.psm1模块,这也将起作用。
也许更优雅的方法是使用WMF5 PackageManagement。在 中声明Indented.NetworkTools
为依赖项 (NestedModules) MyModule.psd1
,然后将其发布到 PSGallery 上。然后,您可以Install-Module MyModule
在其他机器上说- 这将安装MyModule
并且它是依赖项。
这种方法的问题在于,任何声明的依赖项也必须在 PowershellGallery 上可用(哪些Indented.*
模块不是)。
归档时间: |
|
查看次数: |
2666 次 |
最近记录: |