如何在 Azure Functions 中获取列出 运行 的 Azure PowerShell 模块版本?

How to get Azure PowerShell modules versions listing running in a Azure Function?

我使用 PowerShell 作为编程语言创建了一个定时器触发器 Azure 函数。

我想知道什么是 Azure PowerShell 模块及其在 Azure Function PowerShell 环境中可用的相应版本。我尝试使用下面的 PowerShell 代码来获得我想要的东西。

Get-Module -ListAvailable -Name *Azure*

不带版本返回结果如下。

所以问题是 should/could 我在 Azure Function 中做了什么来获取 Azure PowerShell 模块和版本?

注意:本地 Windows PowerShell 上的相同 PowerShell 代码 运行 能够列出 Azure PowerShell 模块名称、版本和其他详细信息。

因为您只是这段代码并依赖于写入日志的输出;它将为为主机定义的类型使用默认输出视图;并在此处生成名称上的 ToString()。

当您 运行 客户端上的 cmdlet(来自 powershell 或 ISE)时,它将使用在您的主机上为该类型定义的任何输出视图;导致输出被不同地处理(类型和格式)。

你可以,例如select 格式化您自己的自定义输出以列出您想要的信息。

示例:

Get-Module -ListAvailable -Name *Azure*|ForEach-Object { "Name={0};Version={1};" -f $_.Name , $_.Version}

它会在输出日志中输出名称和版本,用;隔开。如果您需要额外的信息,您可以将其添加到字符串格式函数中或在 Foreach 中添加更复杂的输出。

如果您对输出和默认格式的工作原理感兴趣,我推荐这个 MSDN article