问题标签 [powershell-module]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - 从模块中导出 Powershell 5 枚举声明
我在模块中定义了一个枚举类型。加载模块后,如何将其导出为可从外部访问?
如果枚举可用,我的高级功能将使用枚举而不是ValidateSet
使用枚举,但如果不可用则失败。
更新: 将其分离为 ps1 并对其进行点源(ScriptsToProcess)是可行的,但是我希望有一种更清洁的方法。
powershell - 如何按需加载 PowerShell 函数?
在我启动 PowerShell 时加载的个人 PowerShell 配置文件中,我想通过调用一个函数来包含一组函数。
所以我想做这样的事情:
现在,MyFunctions.ps1
我有一个功能:
我能够加载脚本 MyFunctions.ps1,但加载后我无法bobtest
在控制台中调用 - 我收到错误消息The term bobtest is not recognized...
但是,如果我只是在函数外部加载脚本,则该脚本已加载并且我可以bobtest
正常调用 - 但这意味着我不能在加载MyFunctions
配置文件时不加载 - 我必须加载MyFunctions
并且无法选择。
你看,我想按需加载其他功能,直到我选择它们才可用。
还有其他方法可以做到这一点,或者甚至可以做到吗?
powershell-4.0 - 如何使用 PowerShell 中的模块清单从多个文件中导出变量?
我正在尝试使用 PowerShell 4.0 将多个模块打包到一个清单模块中。基本上,我有 3 个设置模块来做一些事情。我使用我的清单模块打包这三个。然后我只导出所有三个模块中的一些函数和变量。但是,只有我的函数可以从外部调用,我的变量无处可寻。有谁可以帮我离开这里吗?我基本上遵循了这个指南。
这是我的代码:
Setup.ps1(启动脚本):
Setup.psd1(清单模块):
FirstSetup.psm1(第一个模块):
第二和第三个设置:与第一个相同,只有变量和函数被命名为 firstVariable、thirdVariable、Start-SecondSetup 等。
所以我的具体问题是,当我尝试$firstVariable
从 Setup.psm1 访问时,我收到一个未定义的错误。但我在清单模块中将其标记为导出。那么我在这里错过了什么?当Start-FirstSetup
被调用时,它没有任何问题,我什至可以调试我的模块,但即便如此我的 $firstVariable 是未定义的。
powershell - Powershell - Export-ModuleMember 不起作用
我是 PowerShell 的新手,我刚刚开始创建自己的模块。我创建了脚本和清单文件,并将它们放入命令C:\Program Files\WindowsPowerShell\Modules\
列表之一的目录中。$env:PSModulePath
我也可以导入和删除模块,但是当我尝试调用其中一个函数时,它不会被识别为小程序或命令。
我使用 Import-Module 命令:
我的脚本文件是这样的:
我的清单看起来像这样:
我需要将所有导出的函数写入清单吗?
感谢您的帮助。
powershell - #Requires 是否在模块脚本中工作?
考虑以下模块脚本:
MyWebApp.psm1
:
(Export-ModuleMember
为简单起见省略。没有它,脚本仍然可以作为模块工作。)
如果这是一个ps1
脚本,#Requires
则顶部的注释将强制 PowerShell 在以下情况下抛出错误
- 版本低于4
- 无法加载(导入)WebAdministration 模块
但是如果我尝试使用 导入这个Import-Module
,这些有什么影响吗?文档只是说“#Requires
脚本”,但没有说明脚本模块是否算作“脚本”。如果没有,我能做些什么呢?
powershell - Test-ModuleManifest 在模块中的环境变量上失败
我有一个内部 PowerShell 存储库,它利用 PowerShell 5.x 的包管理功能。
我遇到了 Test-ModuleManifest 的问题,它在运行 Publish-Module 时在后台调用。
在我的模块中使用 $env:ProgramFiles 会导致问题。
如果我对该值进行硬编码,则该模块将正常发布。
这是有效的 C:\Program Files 的硬编码路径
要创建本地 PowerShell 存储库来对此进行测试,您可以运行以下命令。
设置本地存储库
Register-PackageSource -Name Local -Location '\\localhost\C$\temp' –ProviderName PowerShellget -Trusted
尝试发布
Publish-Module -Path C:\Users\MM\Desktop\getAvState\getAvState -Repository Local -Verbose
最后注销本地仓库
Unregister-PackageSource -Source Local
这是 Test-ModuleManiest 在清单文件上运行时,模块设置为使用“C:\Program Files\Microsoft Security Client\MpProvider”的硬编码值
这是当模块“$env:ProgramFiles\Microsoft Security Client\MpProvider”中包含以下内容时
powershell - 如何将模块安装到自定义目录中?
目前我们正在使用以下命令安装一些模块,但它会将模块安装在C:\Program Files\WindowsPowerShell\Modules
.
E:\Modules
我们的要求是在文件夹中安装这个模块。为此,我更新了PSModulePath
环境变量,如下所示。(https://msdn.microsoft.com/en-us/library/dd878350(v=vs.85).aspx)
但它仍然安装在C:\Program Files\WindowsPowerShell\Modules
.
在安装模块之前如何更新PSModulePath
到?E:\Modules
powershell - 如何找出 PowerShell 模块的 ArgumentList?
我正在尝试编写一个脚本,该脚本需要检测 PowerShell 模块的 ArgumentList 是什么。有什么办法可以找出来吗?
最终游戏是能够使用它来创建一个简单的 DI 容器来加载模块。
powershell - PowerShell 5.1 - 如何卸载当前使用的模块
我们在一个部署 PowerShell 脚本中使用了一些 PowerShell 模块。使用以下命令,我们将模块(即 XXXX)安装到“C:\Program Files\WindowsPowerShell\Modules”中。
现在,一旦我们使用了这个模块的功能,我们在部署脚本结束时使用以下命令将其卸载。
但是这个卸载模块命令给出了以下错误。
有没有人有任何想法来解决这个问题?