从 Web 作业运行 Azure PowerShell 命令

2023-12-09

Update:我按照下面 BenV 的建议使用了 Azure 自动化,并且成功了!更多信息可以找到here.


我有一个 PowerShell 脚本,需要运行一些 Azure 命令,例如New-AzureStorageContext, Get-AzureStorageContainer, Set-AzureStorageBlobContent等等。我想将脚本作为网络作业运行。

当我将此脚本作为 Web 作业运行时,我在 Azure 命令上收到以下错误。其他 PS 命令从 webjob 成功运行。

我搜索了 StackOverflow,但找不到有关从 Web 作业运行 Azure 命令时生成的这些错误的帖子。提到使用有些相关的帖子Import-Module这与下面给出的建议类似。

较早的 MSDN 博文建议在 PS 脚本中添加“Import-Module Azure.ps1”,并将 Azure.ps1 包含在 webjob zip 文件中。 (这实际上是我本地 C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure 中的 Azure.psd1)。另外,我尝试使用 Azure.psd1 和 Azure.ps1 导入模块,认为错误可能与文件扩展名有关,但事实并非如此。

我的 webjob .zip 文件仅包含我的 .CMD 文件、GetLinks.ps1 和 Azure.ps1。

我的 .CMD 文件使用以下命令启动我的 PS 脚本: PowerShell.exe -ExecutionPolicy RemoteSigned -File GetLinks.ps1

在此 .ps1 文件的顶部有:“Import-Module .\Azure.ps1”。由于我在 WebJob 运行日志中看到“INFO”语句,因此运行成功。

接下来,我的 PS 脚本尝试运行 Azure PS 命令,但我仍然遇到相同的错误,如下面的一个示例错误。


New-AzureStorageContext : The term 'New-AzureStorageContext' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At D:\local\Temp\jobs\triggered\getlinks2\b2025qk5.ddj\GetLinks.ps1:75 char:19
+ $storageContext = New-AzureStorageContext -StorageAccountName $storageAccountNam ...
+  ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (New-AzureStorageContext:String) [], CommandNotFoundException

+ FullQualifiedErrorId:CommandNotFoundException


目前,运行 WebJobs 的沙箱不支持 Azure PowerShell。有多种因素:

  1. Worker 上未安装 CmdLets
  2. 即使安装了,也存在阻止它们正常运行的问题
  3. 即使它们运行,您也需要在运行命令之前进行身份验证。最后一部分可以使用服务主体来解决。

因素#2 是最大的阻碍因素。我们希望能够达到这一点,但现在这很棘手。

一种可能的解决方法是直接执行 ARM 请求,尽管这需要更多工作(并且您仍然需要使用服务主体进行身份验证)。您还可以编写 C# 代码来进行调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Web 作业运行 Azure PowerShell 命令 的相关文章

  • Azure 共享计划上的 SSL?

    我有 1 个网站 1 个数据库和 1 个 SSL 托管在 azure 上 我曾经拥有 基本 托管套餐 但每个月要支付 70 美元才能获得基本设置 并且所有内容都具有最小的缩放比例 我意识到我的低流量站点不需要专用计算机 因此我尝试转向共享计
  • powershell Invoke-WebRequest WebSession 不起作用

    我无法让以下代码工作 它似乎已登录 但随后返回带有 response 的登录页面 我猜这与回发有关 有办法解决这个问题吗 谢谢 login Invoke WebRequest Uri http www sqlpass org UserLog
  • Azure 服务总线是否可能创建了该消息的副本?

    我们在 Azure 服务总线上遇到了一些奇怪的行为 除了 Azure 中的一些错误之外 我们无法弄清楚如何解释 这就是发生的事情 我们已向 Azure 服务总线发送过一次消息 发送消息的调用执行时间略长于一分钟 但仍然成功 并且此后消息收到
  • PowerShell FTP 下载文件和子文件夹

    我喜欢写一个PowerShell脚本来下载全部文件 and 子文件夹从我的 FTP 服务器 我找到了一个脚本来下载一个特定文件夹中的所有文件 但我也喜欢下载子文件夹及其文件 FTP Server Information SET VARIAB
  • 如何获取 Azure Active Directory 登录用户的密码策略

    我想使用 graph api 或 adal 获取 C 中登录用户的密码到期日期 有了这个问题 我知道如何使用 PowerShell 获取密码策略以及到期日期 但还不确定如何使用 C 在 PowerShell 中获取 Azure Active
  • 如何在没有 user_impersonation OAuth2Permission 的情况下创建新的 Azure 应用程序注册?

    我想知道 Azure 专家中是否有人可以澄清New AzureADApplication https learn microsoft com en us powershell module azuread new azureadapplic
  • 在 powershell 中打开 Excel 时出错

    我需要用以下命令打开 Excel 文件CorruptLoad来自 powershell 脚本的参数 但是当我尝试做到这一点时 出现错误Exception calling Open with 15 argument s open method
  • 本地测试 Azure Active Directory 安全性

    我在 Azure 上部署了一个 Web 应用程序 并启用了 Azure Active Directory 安全性 快速设置 因此 当我尝试访问该应用程序时 我需要成为 AD 的一部分才能访问 我想向应用程序添加更多功能 例如显示当前登录的用
  • Convertfrom-string 删除前导零

    我在使用 Convertfrom String cmdlet 时遇到问题 value something 009 value ConvertFrom String Delimiter Output P1 P2 something 9 我想要
  • 如何将一行分成多行?

    我有一个 CSV 文件 看起来像这样 Column1 Column2 Column3 John Smith AA AH CA NI PB Reginald Higginsworth AA AH CA NI PB SN ZS 您会注意到其中有
  • 如果警告数量超过一定限制,AzureDevOps 构建管道将失败

    我热衷于不让项目质量失控 我知道在某些情况下警告可能有意义 但我担心警告的数量会随着时间的推移而增加 我有一个 Azure DevOps 构建 门控提交 管道 我只想允许 10 个警告 以便在某些时候开发人员必须解决他们的警告 有没有办法对
  • 如何使 PowerShell 函数调用超时

    我编写了一个小 powershell 函数 用于对远程服务器执行 Get EventLog 在某些服务器上 这似乎只是挂起并且永远不会超时 我可以使 powershell 函数调用超时吗 我知道如何针对不同的过程 https stackov
  • 查找所有 DHCP 和 DNS 服务器

    我有一位客户要求我找到他所有的 Dhcp 和 DNS 服务器以及一些附加信息 例如 DC 服务器和操作系统 所以我决定尝试提高我的 powershell 技能 但我对此还很陌生 所以我写了这个脚本 但我想仍然缺少一些东西 因为它不起作用 编
  • Powershell 工作流 DynamicActivity 编译器错误“。”预期使用 $Date 变量

    通常 powershell 错误会给我一些继续下去的机会 但是这个错误让我陷入了困境 要进行测试 请执行以下代码 workflow test date Date Get Date format yyyyMMddHHmm Verbose Wr
  • Powershell:获取 FQDN 主机名

    我想通过 powershell 脚本检索 Windows 服务器的 FQDN 名称 到目前为止我已经找到了2个解决方案 server Invoke Command ScriptBlock hostname 上面的行将仅打印服务器的短名称 s
  • 如何在 Powershell 中设置低 I/O(“后台”)优先级

    There s 这个powershell脚本 https stackoverflow com a 4302 1266650它可以将进程的优先级从 空闲 设置为 实时 但某些工具提供另一个优先级 该优先级甚至会降低进程的优先级 如何在 Pow
  • Azure Runbook 输出到电子邮件

    我正在尝试将 VM 状态的输出从 Azure 自动化 Runbook 发送到电子邮件中 我使用以下代码 function Send EMail Param Parameter Mandatory true String EmailTo Pa
  • 具有特殊AssignableScopes的Azure自定义RM角色定义

    我正在尝试创建一个自定义 Azure RM 角色定义 其范围适用于一个订阅内的某些资源组 我不想提供对所有订阅或仅一个资源组的访问权限 并且我无法指定资源组列表 因为其中一些资源组尚未创建 我只想提供订阅资源组的某些子集的访问权限 为此 我
  • 如何从 MVC 视图将文件上传到 Azure Blob 存储

    我正在编写一个 MVC5 互联网应用程序 并且需要一些帮助来将文件从我自己的文件系统上传到 Azure Blob 这是我的Azure上传代码功能 public void UploadFileToBlobStorage string cont
  • 以编程方式创建 Blob 存储容器

    我有一个要求 即在创建公司时 在我的 storageaccount 中创建关联的 blob 存储容器 并将容器名称设置为传入的字符串变量 我已尝试以下操作 public void AddCompanyStorage string subDo

随机推荐