如何在没有管理员权限的 Azure Web 应用上安装 PowerShell 模块?

Posted

技术标签:

【中文标题】如何在没有管理员权限的 Azure Web 应用上安装 PowerShell 模块?【英文标题】:How to install a PowerShell module on an Azure web app without administrator permissions? 【发布时间】:2019-05-07 09:09:06 【问题描述】:

我正在开发一个用于在 Azure 上自动部署应用程序的内部工具。它实际上是一个 MVC 应用程序,用户可以在其中上传包含其他应用程序的 zip 包,然后将它们部署在 Azure 上(每个应用程序都部署到自己的应用程序服务中)。到目前为止,我在 C# 中使用“Microsoft.Azure.Management.Fluent”,这让事情变得简单。不幸的是,它不允许我进行我需要进行的那种配置,尤其是在应用程序网关上。幸运的是,PowerShell 做到了。我已经编写了完成我需要的一切的脚本。我可以在我的 azure Web 应用程序中发布该脚本。问题是那里缺少AzureRM 模块(这是必需的模块)。此外,我无法安装它,因为我收到“您不是管理员...”错误(可能是因为我不是实际 Azure Web 应用程序的管理员)。有关如何在 Azure Web 应用程序中安装 PS 模块的任何想法?

更新: 我知道我可以使用 Azure API 来实现我的目标,但我希望能够运行一个普通的 PowerShell 脚本(至少它更具可读性)。

更新 2 :) 似乎无法在 Web 应用程序旁边安装 PS 模块,因为资源是共享的等等。我决定放弃使用带有 azureRM 的 powershell 并从我的 c# 应用程序执行 api 调用。

【问题讨论】:

你能把它复制过来吗? ***.com/questions/37724769/… 不,不幸的是,这对我不起作用。我尝试使用 WebApp 上已经存在的 AzureRM,但版本不符合我的要求。 我贴了一些参考资料。如果您需要更多帮助,请向我们提供管理已安装模块的 PowerShell 代码 只是作为一个建议,如果你找不到你需要的powershell模块,你可以随时使用API​​。您是否尝试过以管理员身份运行 Powershell 来安装模块? 能把你写的脚本贴出来吗? 【参考方案1】:

如果环境上的版本与您的要求不兼容,请尝试先将其卸载。

如何卸载 AzureRM 模块以重新安装不同的版本 - https://docs.microsoft.com/en-us/powershell/azure/uninstall-azurerm-ps?view=azurermps-6.13.0

使用 Power Shell 安装 Azure RM 模块 - https://docs.microsoft.com/en-us/powershell/azure/install-azurerm-ps?view=azurermps-6.13.0

【讨论】:

我在 azure 上将我的应用程序部署为 Web 应用程序。我实际上需要一个更新版本的azurerm。已经有一个了。但我需要的不止这些。 @coceban.vlad 那么我该如何提供帮助?不知道你的意思是什么?【参考方案2】:

您可以尝试将您需要的模块版本安装到当前用户环境(使用Az模块而不是AzureRM):

Install-Module -Name Az.Websites  -Scope CurrentUser

请注意,不再推荐使用 AzureRM:

因为 Az PowerShell 模块现在具有 AzureRM 的所有功能 PowerShell 模块等,我们将淘汰 AzureRM PowerShell 模块 2024 年 2 月 29 日。 我们不支持同时安装 AzureRM 和 Az 模块 同时在 Windows 上运行 PowerShell 5.1。

【讨论】:

以上是关于如何在没有管理员权限的 Azure Web 应用上安装 PowerShell 模块?的主要内容,如果未能解决你的问题,请参考以下文章

将Azure SQL Server的访问权限限制为特定的azure Web应用程序

没有列表权限 Azure Key Vault 'Forbidden' 错误

从 azure web 应用程序提供 logstash。如何?

无法在Azure Active Directory中创建应用程序。错误:没有足够的权限来完成操作

托管标识 - 如何在本地调试

在 Azure Web 应用程序中使用重写规则获取权限错误