Azure VM 上的 winget 问题

问题描述 投票:0回答:1

我在 Azure 中有多个虚拟机,我想使用 winget 升级来更新所有应用程序。这些虚拟机运行的是 Windows Server 2016/2022,我已在其上手动安装了 winget。当我登录到机器时,我可以毫无问题地执行 winget 命令。 但是,我想使用 Invoke-AzVMRunCommand 运行 winget 升级,但我不断收到以下消息,但没有任何反应:

Value[0]       :
  Code          : ComponentStatus/StdOut/succeeded
  Level         : Info
  DisplayStatus : Provisioning succeeded
  Message       :
Value[1]        :
  Code          : ComponentStatus/StdErr/succeeded
  Level         : Info
  DisplayStatus : Provisioning succeeded
  Message       :
Status          : Succeeded
Capacity        : 0
Count           : 0

我还尝试使用 winget 安装单个应用程序或使用 -o 将输出写入文件,但该文件仍然为空,并且没有安装任何内容。

Invoke-AzVMRunCommand -ResourceGroupName $rgName -VMName $vmName -CommandId 'RunPowerShellScript' -ScriptString 'winget install Microsoft.Azure.StorageExplorer'

即使在查询版本时,我也收到相同的成功消息。

Invoke-AzVMRunCommand -ResourceGroupName $rgName -VMName $vmName -CommandId 'RunPowerShellScript' -ScriptString 'winget --version'

我是计算机上的 VM 所有者和 VM 贡献者。 有人可以帮助我吗?

我希望我的脚本能够正常工作,并且能够自动更新虚拟机上的所有应用程序。

azure powershell azure-virtual-machine winget
1个回答
0
投票

我相信我已经找到问题了。当我在 Invoke-AzVmRunCommand 中调用脚本时,它会使用系统用户在系统上下文中自动执行。但是,在系统上下文中,默认情况下无法运行 winget,因为它是 MSIX 包。有一些可用的解决方法,但它们非常麻烦,而且到目前为止都没有奏效。我想我会关闭票证。

© www.soinside.com 2019 - 2024. All rights reserved.