Intune部署解决方案

通过Microsoft Intune提供Microsoft Company Portal应用的离线部署包,适用于Microsoft Store不可用或ESP跳过账户设置的场景。

  • by markorr321
  • PowerShell
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 markorr321/MCP

使用说明

Microsoft公司门户-Intune部署解决方案

用于通过Microsoft Intune配置Microsoft公司门户应用程序的离线部署包。专为Microsoft Store不可用或ESP(注册状态页面)跳过帐户设置,导致最终用户无法注册公司门户的情况而设计。

问题

通过Intune中的Microsoft Store(新)应用程序类型部署公司门户的安装行为不可靠——在Autopilot注册期间,该应用程序在首次用户登录时经常不可用,尤其是在ESP跳过帐户设置阶段时。有关此问题的更多背景信息,请参阅 改善入职体验:自动启动公司门户.

现有的解决方法,如将公司门户部署为离线LOB应用程序,解决了可用性问题,但应用程序版本是静态的,除非Microsoft发布新的离线源文件,否则无法更新。

此解决方案将公司门户部署为Win32应用程序,并通过标准命令行安装程序类型调用PowerShell脚本。

运作原理

该解决方案使用通过单独的Intune策略部署的两部分方法:

  1. Win32应用程序--系统级配置 — Install.ps1 提供公司门户 .appxbundle 它具有依赖关系和许可证,因此设备上的所有用户都可以使用它。它还将捆绑包和依赖文件分阶段存储到 C:\ProgramData\CompanyPortal 用于用户上下文注册。
  2. 平台脚本——按用户注册 — CreateScheduledTask.ps1 被部署为Intune平台脚本。它编写一个注册脚本和VBS启动器 C:\ProgramData\Scripts 并创建了一个 RegisterCompanyPortal 在用户登录时触发的计划任务。该任务从暂存捆绑包中为任何尚未拥有公司门户的用户安装公司门户。

仓库结构

Win32/
  Install.ps1                  # Main install script (Win32 app)
  Uninstall.ps1                # Uninstall script (removes app, task, and staged files)
  *.appx                       # Dependency packages (x64)
  *.appxbundle                 # Company Portal offline bundle
  *_License1.xml               # Offline license file
  Win32-App.md                 # Step-by-step packaging and Intune configuration guide
Detection Script/
  Detect.ps1                   # Custom detection script for Intune
IntuneWin/
  Install.intunewin            # Pre-packaged .intunewin for upload
PlatformScript/
  CreateScheduledTask.ps1      # Platform Script — creates scheduled task + registration scripts
  Platform-Script-Scheduled-Task.md  # Step-by-step Platform Script deployment guide
Company-Portal-Dependancies/
  *.appx                       # Full set of dependencies (arm, arm64, x64, x86)
  *.appxbundle                 # Company Portal offline bundle
  *_License1.xml               # Offline license file
  Company-Portal-Dependencies.md  # Download and extraction guide
Logo/
  CompanyPortal-Logo.png       # App icon for Intune

Intune部署

1.Win32应用程序

上传 Install.intunewin 从 IntuneWin/ 将Intune文件夹作为Win32应用程序。

要在更改后重新打包,请使用 Microsoft Win32内容准备工具:

IntuneWinAppUtil.exe -c Win32 -s Install.ps1 -o IntuneWin

应用程序配置

设置 值
安装命令 powershell.exe -ExecutionPolicy Bypass -File .\Install.ps1
卸载命令 powershell.exe -ExecutionPolicy Bypass -File .\Uninstall.ps1
安装行为 系统
检测规则 自定义检测脚本--上传 Detection Script\Detect.ps1

2.平台脚本

部署 PlatformScript\CreateScheduledTask.ps1 作为Intune 平台脚本 (设备>脚本和补救措施>平台脚本)。

设置 值
使用登录凭据运行此脚本 否(作为系统运行)
在64位PowerShell主机中运行脚本 是的

依赖项

下载离线公司门户包(.appxbundle、许可证XML和框架依赖关系)从Microsoft下载中心下载:

https://www.microsoft.com/en-us/download/details.aspx?id=108156

x64包含以下框架依赖项,并且必须与位于同一目录中 Install.ps1:

  • 微软。VCLibs 140.00
  • 微软。网。原住民。框架2.2
  • 微软。网。原住民。运行时间.2.2
  • 微软。UI。Xaml.2.7
  • 微软。服务。商店。参与

安装脚本在运行时自动选择正确的体系结构(x64/x86)。

计划任务详细信息

这 RegisterCompanyPortal 计划任务由平台脚本创建,具有以下行为:

  • 触发: 在用户登录时运行
  • 负责人: BUILTIN\用户组(SID S-1-5-32-545),最低特权
  • 行动: 跑动 C:\ProgramData\Scripts\RegisterCompanyPortal.vbs --一个以静默方式调用PowerShell的VBS启动器(没有控制台窗口弹出)
  • 行为: 检查当前用户是否安装了公司门户;如果没有,则从中的暂存捆绑包和依赖项安装它 C:\ProgramData\CompanyPortal

卸载

Uninstall.ps1 执行全面清理:

  1. 删除已配置的软件包(阻止新用户安装)
  2. 删除所有现有用户配置文件的已安装包
  3. 删除 RegisterCompanyPortal 预定任务
  4. 从中删除注册脚本 C:\ProgramData\Scripts
  5. 从中删除暂存的捆绑包和依赖项 C:\ProgramData\CompanyPortal