HOWTO: 为 MSIX 创建自签名证书

[ 2023/01/01 10:06 | by gOxiA ]

Windows_logo_horiz_blue_rgb

HOWTO: 为 MSIX 创建自签名证书

        MSIX 是一种 Windows 应用安装包的格式,它可以将我们的 Win32 或 UWP 甚至是绿色版软件打包成 MSIX 格式用于企业批量和自动化部署。另外从官方文档了解到 1.2019.1220.0 还支持将包含的服务转换为应用程序。这对于一些要部署国产小软件的企业来说是个好消息,未来 gOxiA 也将尝试去打包那些应用程序。

        而今天我们要分享的是如何为 MSIX 创建自签名证书,因为 MSIX 生成后要发布给最终用户需要对 MSIX 进行签名,如果当前环境没有 CA 或无法生成所需的证书就需要创建自签名证书,否则无法应用 MSIX。

        在创建自签名证书前,我们需要确定 MSIX 的 发布者信息,通常这些信息位于 AppxManifest.xml 文件中,其 Publisher 信息必须与证书中的主体相同。之后参考下面的命令行创建证书:

New-SelfSignedCertificate -Type Custom -Subject "CN=Contoso Software, O=Contoso Corporation, C=US" -KeyUsage DigitalSignature -FriendlyName "Your friendly name goes here" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")

        其中:

  • -keyusage 表示证书的用途,对于自签名证书,应为 DigitalSignature
  • -TextExtension 表示一些扩展设置,2.5.29.37={text}1.3.6.1.5.5.7.3.3,表示证书用于代码签名;2.5.29.19={text} 表示该证书非CA

        接下来使用 PowerShell 查看证书信息:

Set-Location Cert:\CurrentUser\My
Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint

        在确认了证书信息后,现在可以将证书导出为 pfx 格式,为此执行:

$password = ConvertTo-SecureString -String <Your Password> -Force -AsPlainText
Export-PfxCertificate -cert "Cert:\CurrentUser\My\<Certificate Thumbprint>" -FilePath <FilePath>.pfx -Password $password

image

        现在我们拿到了 pfx 就可以用于 MSIX 签名,后续 gOxiA 也会积极分享 MSIX 相关的实践。

参考文档:

https://learn.microsoft.com/zh-cn/windows/msix/package/create-certificate-package-signing

teams

HOWTO: 大规模部署 Windows Teams 客户端

        早前 Teams 是作为独立的安装包来发布的,这对正在部署 Teams 的组织是一项巨大的挑战,因为很多 IT 还在下载 EXE 的安装包,并将其用于大规模部署中。其实 Teams 当前已经被包含在 Microsoft 365 Apps 中,下图可以了解包含 Teams 的版本发布情况。

image

        企业 IT 人员可以通过 ODT 生成安装配置文件直接部署,默认包含 Teams 组件。但如果你希望在 M365 Apps 安装中排除 Teams 也是可行的,通过在 XML 中添加  <ExcludeApp ID="Teams" /> 即可。

        如果因为某些原因,当前组织还在单独部署 Teams 应用程序,也完全不是问题,因为微软提供了用于大规模部署的 MSI 安装包。

Teams 商业:Teams 32bitTeams 64bitTeams ARM64

        虽然 Teams 提供了 MSI 安装包,但它还是比较特别的,并非传统的面向设备上下文安装,而是每当新用户登录产生新的用户配置文件时都会启动安装程序,并在用户的文件夹中安装 Teams 应用的副本。

        此外当首次启动 Teams 时还需要用户同意其配置防火墙,当然微软也为此提供了一个脚本方案 - https://learn.microsoft.com/en-us/microsoftteams/client-firewall-script?source=recommendations

        对于那些希望 Teams 在安装后不要自启动的场景,可以在 Teams MSI 部署时使用特定的参数 OPTIONS="noAutoStart=True" ALLUSERS=1 。或者通过组策略进行设置,“用户配置 - 策略 - 管理模板 - Microsoft Teams”。如果没有这个 Teams 管理模板,则需要提前下载准备,Office 管理模板下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=49030

        但对于已经部署过的 Teams 并设置过自启动的用户实例,必须先将组策略设置为所需的值后,在基于每个用户运行 Teams 自动启动重置脚本

        最后,如果要卸载并清理 Teams 安装,则可以参考微软提供的脚本:https://learn.microsoft.com/en-us/microsoftteams/scripts/powershell-script-deployment-cleanup?source=recommendations

参考资料:

https://learn.microsoft.com/en-us/MicrosoftTeams/msi-deployment

HOWTO: 使用 PPKG 跳过 Windows OOBE

[ 2022/12/18 08:17 | by gOxiA ]

Windows_logo_horiz_blue_rgb

HOWTO: 使用 PPKG 跳过 Windows OOBE

        Windows OOBE 即我们常说的 Windows 初始欢迎界面,其标准术语是“Out of Box experience”,即 Windows 开箱体验。OOBE 包含了一系列的屏幕指引,如需要客户接收许可协议,指定所在区域,连接到 Internet,登录 MSA 或 M365 账号等等,以下仅仅列出了部分的屏幕步骤。

23

45

67_ifinternet_to8-1_else_to8

8-1-lan-chooseaccount

        如果你是以为企业 IT 桌面标准化的编制人员,那么下面的列表应该会很有帮助。用户在 Windows 10 OOBE 期间可能会看到的屏幕的非详尽列表,按顺序排列:

  1. 语言选择
  2. Cortana 欢迎
  3. 区域选择
  4. 键盘选择
  5. 连接到网络
  6. 自动下载关键 ZDP 和驱动程序更新。 有关详细信息,请参阅 OOBE 期间的 Windows 更新。
  7. 最终用户许可协议 (EULA)
  8. 登录或创建本地帐户或 Microsoft 帐户 (MSA)。 如果用户选择本地帐户选项,则 OOBE 流的下一步将显示“改为使用 Microsoft 登录?”屏幕。 此屏幕会建议用户使用其 MSA 登录,以获得最佳 Windows 体验。
  9. 为本地帐户创建安全问题。 Windows 10 版本 1803 中的新功能。 仅当用户在上一屏幕中选择创建本地帐户而不是登录到其 MSA 时才显示。 请参阅 OOBE 屏幕详细信息,了解有关 OOBE 中这一新屏幕的详细信息。
  10. Windows Hello 设置
  11. 链接您的电话和电脑。 仅当用户在前面的屏幕上登录 Microsoft 帐户并连接网络后,才会显示此屏幕。
  12. 将文件保存至 OneDrive。 这是云服务页。
  13. 设置 Office。 仅当用户连接到网络并提供其 Microsoft 帐户信息后,才会显示此屏幕。 本页中的内容将因用户的帐户类型而异。 例如,如果他们的 Microsoft 帐户有资格免费试用 Office,该页面将鼓励用户设置免费试用。 这是云服务页。
  14. 付款信息。 Windows 10 版本 1803 中的新功能。 仅当用户从“设置 Office”屏幕上选择加入 Office 免费试用版时才会显示。 这是云服务页。
  15. 使 Cortana 成为我的个人助理
  16. 隐私设置。 用户将在此屏幕上看到最多 7 个隐私设置。 并非所有用户都会看到相同的设置。
  17. OEM 注册页
  18. 获取最新版 Windows。 在 Windows 10 版本 1803 之前,此屏幕名为“电脑正在等待更新”,并在 OOBE 结束时显示。

        对于 Windows 11 OOBE 过程会有很大的变化,其中最为显著的就是会强制用户使用 MSA 或 M365 账号登录(近来有一些用户反馈,可能多发于 OEM 系统)。

Snipaste_2023-02-11_16-01-38

        如果企业之前已经在实施标准化的部署技术和流程,那么这个问题可轻松应对,因为通常 IT 会编制 Unattend.xml 来实现本地账号的创建,或加域的动作,同时还会实现 OOBE 自动化,所以并没有什么干扰或影响。

        但那些还在使用非标准化技术来实施的环境,将面临巨大挑战!但如果您所在的组织已经全面使用 M365 账号登录 Windows,那可以就此暂停去干别的事情了,无需再此浪费时间!!!否则你将需要借助 PPKG 来作为一种解决方案。

        PPKG 是一种动态部署方案,相比较 Unattend 那些传统的方法,更灵活更高效,我们只需要将制作好的 PPKG 文件复制到到 U盘,就可以在 OOBE 阶段应用,在 OOBE 屏幕上连续按五次 Win 键,即可激活选项。

oobe-regionoobe-5win

        gOxiA 已经事先做好了一个 PPKG,将会自动化 OOBE 直接跳转到登录界面,默认会在系统中创建一个本地账号,想测试体验的朋友可以直接下载下面的文件。但如果你想了解编制的方法可以继续往下阅读。

OOBEforLocalUser.zip

本地账号:Admin

密码:goxia

        打开 ICD,选择“Advanced provisioning”创建 PPKG,在左侧“Runtime settings”配置“Accounts - Users - UserName,Password,UserGroup”,以及“OOBE - Desktop - HideOobe”。最后导出为 PPKG 即可参考前面步骤使用。

imageimage

分页: 13/469 第一页 上页 8 9 10 11 12 13 14 15 16 17 下页 最后页 [ 显示模式: 摘要 | 列表 ]