使用脚本安装Windows商店应用程序

15
需求:安装一个Windows Store应用程序,无需要求用户导航到商店并点击安装。也许是批处理文件,也许是PowerShell脚本,也许是其他什么东西。

这不是侧载问题;这是一个公共的、Windows Store的问题。

场景1:也许,我的公司有一个新的应用程序在商店中,我想将其推送给每个员工,而不需要他们导航到商店并点击安装。

场景2:也许,我的公司刚订阅了在线客户关系管理系统(或其他某些东西),我想将CRM客户端推送给每个员工,而不需要他们导航到商店并点击安装。

场景3:也许,我的公司正在招聘新员工并准备新电脑。在他们第一次登录脚本(或其他地方),我想确保他们拥有对我的业务重要的应用程序,而不需要他们导航到商店并点击安装(可能需要多次)。

场景4:也许,我的公司非常虚拟化,我们经常提供新的VM。VM表现良好,但带宽是我们的问题。为了简化用户体验,用户登录并观看VM为他们准备自己下载和安装Windows Store应用程序。

请不要挑剔这些场景,我只是尝试给出可能的用例。

复杂性:我被告知(由那些懂得这种事情的人),没有内置的API可以完成这个任务。但我们是开发人员。没有人敢说什么是不可能的。但是,如果没有内置的API,则网络管理员或团队中的开发人员如何解决此问题?我意识到这个问题有点头脑风暴。但是它一遍又一遍地被问到。我想为其他考虑相同情况的人提供资源。

嘿,也许这很容易。请分享。


答案的一部分将是Add-AppxPackage命令。只要您有文件路径,它就会安装.appx。不确定如何自动从商店获取.appx。 - Keith Hill
Add-AppxPackage可以从商店获取吗? - Jerry Nixon
嗯.. Add-AppxPackage无法从商店下载任何内容,但是如果您已经将应用程序发布到商店,那么您不是有.appx文件吗?一旦使用Add-AppxPackage安装,它就会像直接通过商店安装一样运行。另请参见此处... - Peter Schneider
4
有没有解决方法了?这个问题被提出已经5年了,我仍然想知道如何解决这个问题... - Alex Vallejo
3个回答

3
我们在环境中使用了SCCM,一些PS脚本被部署在C:\Windows\CCM\SignedScripts中,这些脚本可能值得研究。 它们与SCCM无关。 其中最相关的是"C:\Windows\CCM\SignedScripts\installwindows8app.ps1"。该脚本仅将参数传递给Add-AppxPackage,尽管我不确定它如何获取MS商店中.appx的路径。 您可以通过(Get-AppxPackage -Name "*").InstallLocation在模型计算机上获取已安装应用程序的位置,但是然后您需要重新打包、存储、部署和维护它们——这并不是您寻找的解决方案。 通过调查SCCM如何使用这些脚本以及挖掘已安装的应用程序之间,也许有人可以找到一些东西。

1

穿越将近8年的未来,我们已经越来越接近答案! Windows 10的最新版本现在带有"winget"且增加了一些Microsoft Store的支持。

安装哪些应用程序似乎是随机的。以Spotify为例,

winget search "Spotify"

最好还是通过id安装:
winget install 9NCBCSZSJRSB

由于它会停下来并询问您是否同意条款和条件,您可以通过以下方式自动回答:

echo Y | winget install 9NCBCSZSJRSB

作为我的参考文献之一,有这样一句话:“有趣的是,如果你在运行winget install的同时打开Microsoft Store,你会看到安装进度在命令行窗口和Store GUI中实时更新。”
这个答案还有很多需要改进的地方,因为大多数自动化安装可能只会遇到错误“验证/请求软件包获取失败:找不到商店帐户”。但是,如果您能够以用户身份运行它,您可能会更加幸运。我希望看到这个工具得到更好的完善,以便能够实现您列出的所有场景。随着Microsoft更新工具,我们可以相应地更新这个答案。
参考资料和注释:

WINGET 受支持吗? - Jerry Nixon

0

4
尽管我理解Intune可以完成我所要求的功能,但我真正需要的是不需要另一个产品的解决方案。 - Jerry Nixon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接