如何在没有管理员权限的 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。如何?