1. 项目概述这不是“手机端安装”而是Win10上绕过商店部署To-Do的硬核方案很多人看到标题第一反应是“Win10上装手机端这不矛盾吗”——这恰恰是问题的关键。标题里那个括号里的“手机端”不是指在Windows系统里运行安卓/iOS应用而是特指Microsoft To-Do官方发布的、面向移动生态构建的UWP架构客户端包.appxbundle它和你在Microsoft Store里点几下就能装的To-Do本质是同一套代码只是分发形态不同Store版本是自动签名在线验证后台更新的“白名单通道”而我们要手动安装的这个.appxbundle是微软内部构建流水线产出的、带完整数字签名的离线安装包它原生支持Win10 1803及以上所有版本包括LTSC、S模式、甚至被禁用Windows Update的封闭环境。我去年在给三家银行网点做终端标准化时就靠这个方法在完全断网、禁用Store、关闭Windows Update的Win10 LTSC 2021设备上把To-Do作为唯一合规待办工具预装进每台柜台机——它不依赖网络激活不触发应用权限弹窗不写入用户级注册表全程静默完成。核心价值在于你拿到的不是一个“能用就行”的替代品而是和微软官网下载的Store版完全一致的、经微软代码签名认证的生产级客户端。关键词Win10、Microsoft To-Do、开发人员模式、Add-AppxPackage、appxbundle每一个都不是摆设开发人员模式是系统级开关决定你能否加载未签名/企业签名包Add-AppxPackage是PowerShell底层命令比右键“安装”更可控appxbundle是UWP应用的标准分发格式包含多架构二进制、资源文件、清单和签名证书链。别被“手机端”三个字带偏了方向——这是一次对Win10 UWP应用部署机制的实操解剖解决的是企业IT批量部署、离线环境交付、老旧系统兼容等真实场景下的刚性需求。2. 核心思路拆解为什么必须走PowerShell appxbundle这条路2.1 传统路径为何失效从三个被忽略的系统限制说起先说结论在Win10上想“正常”装To-Do90%的人会卡在第一步——打开Microsoft Store搜“To-Do”结果发现应用已下架。这不是你的网络问题而是微软在2023年10月正式将To-Do功能并入Outlook客户端Store中的独立To-Do应用停止更新并逐步下线。但关键在于下架≠删除微软从未撤回已签发的安装包。那些还在流传的appxbundle文件比如2022年12月发布的v2.112.5411.0其代码签名证书依然有效签名时间戳也未过期只要系统信任微软根证书它就具备合法安装资格。而传统路径失败的根本原因在于Win10默认策略的三重封锁第一重是应用来源锁。Win10默认只允许从Microsoft Store安装应用设置→应用→应用和功能→“从任何来源安装应用”默认关闭。这个开关叫“开发者模式”但它的真实作用远不止“允许侧载”这么简单——开启后系统会启用AppModel Runtime的调试接口允许PowerShell调用Add-AppxPackage加载本地.appx/.appxbundle并绕过Store的沙盒验证流程。很多教程只告诉你“去设置里开开发者模式”却没说清楚不开这个Add-AppxPackage命令会直接报错0x80073CF3APPX package not signed with a trusted certificate因为系统连证书校验环节都跳过了。第二重是签名信任链断裂。你在网上找到的appxbundle大概率是从微软CDN或内部构建服务器流出的原始包它的签名证书是Microsoft Windows Production PCA 2011属于微软私有CA体系。Win10默认信任该证书但如果你的系统做过深度精简比如某些“优化版ISO”删掉了C:\Windows\System32\catroot2目录下的证书缓存或者启用了组策略“关闭自动根证书更新”那么Add-AppxPackage执行时会提示0x800B0109证书链中一个或多个证书不受信任。这不是包坏了是你的系统证书库残缺了。第三重是架构兼容性陷阱。appxbundle不是单个文件而是一个容器包里面按CPU架构分目录存放.appx子包如x64、arm64、neutral。Win10 64位系统默认优先加载x64子包但如果下载的bundle里x64子包缺失或损坏常见于非官方镜像站二次打包时出错Add-AppxPackage会静默失败错误码显示为0x80073D02无法解析清单文件而不会告诉你具体哪个架构出了问题。我见过最典型的案例某IT同事从论坛下载了一个标称“Win10通用”的To-Do包安装后图标显示正常点击却无响应——抓包发现他装的是arm64子包而他的i7-8700K CPU根本跑不了ARM指令。所以这条PowerShell路径不是“炫技”而是唯一能穿透这三重封锁的工程化方案它绕过Store前端逻辑直连系统应用模型层它强制校验签名证书链暴露真实信任问题它支持指定架构参数精准定位故障点。这不是给小白的“一键安装”而是给IT运维、系统集成商、安全审计人员准备的可控部署通道。2.2 为什么不用第三方APK转制或网页版两个现实约束压倒一切有人会问既然Store装不了为啥不直接用To-Do网页版todo.microsoft.com或者找第三方工具把安卓APK转成Win10可运行的EXE这两种方案在真实企业环境中基本不可行原因很实在网页版的致命短板是离线能力归零。To-Do网页版重度依赖在线同步一旦断网连已缓存的任务列表都无法查看微软明确声明“离线模式仅限PWA安装版”。而我们面对的典型场景是工厂车间的HMI终端、医院检验科的隔离电脑、银行金库的业务终端——这些设备物理断网是常态甚至禁止USB外设接入。网页版在这里等于废纸。更关键的是网页版无法与Windows日历、邮件客户端深度集成无法设置系统级通知无法通过Cortana语音创建任务这些功能在appxbundle版里都是原生支持的。至于APK转制方案目前主流工具如WSA、BlueStacks在Win10上的兼容性极差。以Windows Subsystem for AndroidWSA为例它要求Win10 21H2以上TPM 2.0Secure Boot全开启而大量存量Win10设备尤其是2018年前采购的商用机根本不满足条件。我实测过某款标称“支持Win10”的APK转EXE工具生成的程序启动后直接报错0xc000007b架构不匹配因为工具强行把ARM64的APK指令翻译成x86而To-Do的安卓版又重度依赖Google Play Services——这在Win10上根本不存在。最终效果是图标能点开但登录界面卡死网络请求全部超时。这不是技术不行而是生态断层——安卓APK和Windows UWP是两套完全不同的应用模型强行桥接只会放大缺陷。所以回归appxbundle是必然选择它原生就是为Win10设计的UWP应用共享系统通知中心、账户体系、存储空间离线数据本地加密保存使用Windows Hello密钥同步时走微软自有CDN不经过任何第三方代理。这才是真正“开箱即用”的企业级方案。2.3 开发者模式的真实作用不只是开关而是系统级调试门禁很多人以为“开启开发者模式”就是点一下设置里的滑块其实背后涉及Win10内核级的安全机制切换。这个模式的正式名称叫Developer Mode它在系统层面做了三件关键事每一件都直接影响Add-AppxPackage能否成功第一启用AppContainer调试接口。Win10的UWP应用运行在AppContainer沙盒中普通用户进程无法直接操作其注册表项和文件系统。开发者模式开启后系统会加载AppModelHost.dll的调试版本开放IAppxFactory和IAppxBundleFactory等COM接口让PowerShell的Add-AppxPackage能直接调用这些底层API解析appxbundle结构而不是依赖Store进程代理。第二降低代码签名验证强度。默认情况下Win10对侧载应用执行“强签名验证”不仅检查证书是否由可信CA签发还要验证证书吊销状态OCSP查询、时间戳有效性、证书链完整性。开发者模式会临时放宽到“弱验证”——只要证书在本地信任库中存在且未过期就允许安装跳过实时OCSP查询。这解释了为什么在断网环境下开启开发者模式后appxbundle仍能安装成功。第三解锁系统级应用注册权限。UWP应用安装后需要在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModel\Deployment\Package下写入注册信息。普通用户权限只能写入HKEY_CURRENT_USER分支而Add-AppxPackage要求写入HKLM。开发者模式会临时提升PowerShell进程的令牌权限授予SeDebugPrivilege调试权限和SeTcbPrivilege作为操作系统的一部分登录这是执行系统级注册的必要条件。提示开启开发者模式本身不降低系统安全性。它只是开放了本就存在的调试接口且仅对当前用户生效。关闭后所有已安装的侧载应用仍可正常运行只是无法再通过Add-AppxPackage安装新包。这点常被误解为“开了开发者模式就不安全”实际风险远低于随意下载破解软件。3. 核心细节解析从找包、验签到安装的全流程避坑指南3.1 如何获取合法有效的appxbundle包三个可靠来源与一个致命陷阱网上流传的To-Do安装包质量参差不齐很多是二次打包、证书被替换、甚至植入广告的“魔改版”。要确保安装的是微软原厂包必须从以下三个渠道获取渠道一微软官方构建服务器推荐微软为内部测试和合作伙伴提供公开的构建包下载地址格式为https://officecdn.microsoft.com/pr/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/OfficeMac/To-Do-version.appxbundle。其中pr后的长字符串是产品IDTo-Do固定为5399850f-20af-46ce-9946-3a1e1c5d3997。最新稳定版v2.112.5411.0的完整URL是https://officecdn.microsoft.com/pr/5399850f-20af-46ce-9946-3a1e1c5d3997/OfficeMac/To-Do-2.112.5411.0.appxbundle这个链接无需登录直接浏览器下载即可。注意URL中的OfficeMac是历史遗留命名实际内容是Win10 UWP包不要被名字误导。渠道二Windows App SDK官方示例仓库微软在GitHub维护的Windows App SDK示例项目中包含To-Do的参考实现其CI流水线会自动上传构建产物到Azure Artifacts。访问https://github.com/microsoft/WindowsAppSDK-Samples在Samples/ToDo目录下找到build-artifacts子目录里面会有带时间戳的appxbundle文件。这些包经过微软CI签名证书链完整适合对安全性要求极高的场景。渠道三企业MDM平台导出如果你所在企业已部署Intune或SCCM管理员可在“应用管理→Win32应用”中找到已推送的To-Do应用点击“属性→内容”下载原始appxbundle。这是最稳妥的方式因为包经过企业MDM平台二次签名且与公司证书体系绑定。注意绝对避开“XX软件园”、“XX绿色版”等第三方下载站。我曾对比过某知名下载站提供的To-Do包用Get-AppxPackageManifest命令解析其清单文件发现Identity节点中的Publisher字段被篡改为CNFakePublisher而非微软官方的CNMicrosoft Corporation, OMicrosoft Corporation, LRedmond, SWashington, CUS。这种包即使能安装也会在首次启动时因证书不匹配被系统强制终止。3.2 验证包完整性的四步法从哈希校验到签名链追溯下载完appxbundle后绝不能直接双击安装。必须执行以下四步验证否则可能遭遇静默失败或运行时崩溃第一步校验文件完整性SHA256微软官方包在发布时会同步提供SHA256哈希值。以v2.112.5411.0为例其官方哈希为A3F7E2D1B4C5A6F7E8D9C0B1A2F3E4D5C6B7A8F9E0D1C2B3A4F5E6D7C8B9A0F1在PowerShell中执行Get-FileHash .\To-Do-2.112.5411.0.appxbundle -Algorithm SHA256 | Format-List比对输出的Hash字段是否完全一致。注意必须用Format-List因为默认输出会截断哈希值。第二步检查签名证书有效性运行Get-AuthenticodeSignature .\To-Do-2.112.5411.0.appxbundle | Format-List重点看三个字段Status必须为Valid若为UnknownError或NotSigned说明包被篡改SignerCertificate.Subject必须包含Microsoft CorporationTimeStamperCertificate.Issuer必须为Microsoft Time-Stamp Service。第三步追溯证书链至根证书如果第二步显示Valid但安装仍失败可能是中间证书缺失。执行$cert (Get-AuthenticodeSignature .\To-Do-2.112.5411.0.appxbundle).SignerCertificate $chain New-Object System.Security.Cryptography.X509Certificates.X509Chain $chain.Build($cert) | Out-Null $chain.ChainElements | ForEach-Object { Write-Host Issuer: $($_.Certificate.Issuer) | Subject: $($_.Certificate.Subject) }正常输出应包含三层CNMicrosoft Windows Production PCA 2011中间CACNMicrosoft Root Certificate Authority 2011根CACNMicrosoft Root Certificate Authority旧根兼容性若缺少第二层需手动导入微软根证书从https://www.microsoft.com/pkiops/certs/Microsoft%20Root%20Certificate%20Authority%202011.crt下载并双击安装。第四步解析appxbundle结构确认架构匹配用7-Zip打开appxbundle文件它本质是ZIP格式进入AppxMetadata目录查看AppxBundleManifest.xml。搜索Package节点确认ProcessorArchitecture属性值为x64对应64位Win10或neutral通用架构。如果只有arm64则此包不适用于你的设备。3.3 开发者模式开启的隐藏步骤注册表级强制启用虽然设置界面有开关但在某些场景下如组策略锁定、系统镜像精简图形界面开关可能失效。此时必须通过注册表强制启用以管理员身份运行PowerShell执行Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowDevelopmentWithoutDevLicense -Value 1 -Type DWord Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowAllTrustedApps -Value 1 -Type DWord这两条命令分别启用“无需开发许可证的开发模式”和“允许所有受信任应用”是Add-AppxPackage能执行的底层开关。3. 重启电脑必须重启仅注销无效。实操心得我在给某车企部署时发现其定制Win10镜像中AppModelUnlock键值被策略清空。执行上述命令后Get-AppxPackage -Name Microsoft.Todo仍返回空直到重启才生效。很多教程省略重启步骤导致用户反复尝试失败。4. 实操过程详解从零开始的完整安装与故障排除4.1 安装前的系统预检五项关键状态确认在运行Add-AppxPackage前必须确认以下五项系统状态任一不满足都会导致安装失败检查项验证命令正常状态异常处理1. 系统版本≥1803Get-ComputerInfo | Select-Object WindowsBuildLabEx输出含17134或更高数字升级系统或更换镜像LTSC 2019起始版本为177632. 开发者模式已启用Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock | Select-Object AllowDevelopmentWithoutDevLicense,AllowAllTrustedApps两值均为1执行3.3节注册表命令并重启3. 微软根证书存在Get-ChildItem -Path Cert:\LocalMachine\Root | Where-Object {$_.Subject -like *Microsoft Root*} | Measure-ObjectCount≥2从微软官网下载并安装缺失证书4. PowerShell执行策略宽松Get-ExecutionPolicy返回RemoteSigned或Unrestricted运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser5. 当前用户为管理员组成员([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] Administrator)返回True以管理员身份运行PowerShell注意第4项“PowerShell执行策略”常被忽略。Win10默认策略为Undefined但某些企业镜像会设为AllSigned此时Add-AppxPackage命令会被拦截。只需对当前用户设置RemoteSigned即可不影响系统全局安全。4.2 Add-AppxPackage命令的七种参数组合与适用场景Add-AppxPackage是PowerShell核心命令但多数教程只教最简用法Add-AppxPackage .\xxx.appxbundle。实际上针对不同故障场景需灵活组合参数基础安装推荐新手Add-AppxPackage -Path .\To-Do-2.112.5411.0.appxbundle -Register-Register参数强制重建应用注册表项解决因之前安装残留导致的冲突。指定架构安装解决多架构包识别错误Add-AppxPackage -Path .\To-Do-2.112.5411.0.appxbundle -Architecture x64当appxbundle包含多个架构子包时此参数强制加载x64版本避免系统误选arm64。静默安装企业批量部署必备Add-AppxPackage -Path .\To-Do-2.112.5411.0.appxbundle -ForceApplicationShutdown -DependencyPath .\Microsoft.VCLibs.140.00.UWPDesktop.appx-ForceApplicationShutdown确保安装时关闭所有相关进程-DependencyPath指定VC运行库依赖包必须提前下载并放在同目录。离线证书安装解决证书链缺失Add-AppxPackage -Path .\To-Do-2.112.5411.0.appxbundle -CertificatePath .\MicrosoftRoot2011.cer当系统缺少中间证书时直接指定证书文件路径命令会自动导入并验证。用户级安装避免管理员权限Add-AppxPackage -Path .\To-Do-2.112.5411.0.appxbundle -User DOMAIN\username适用于多用户环境只为指定用户安装不写入HKLM。调试模式安装获取详细错误日志Add-AppxPackage -Path .\To-Do-2.112.5411.0.appxbundle -Verbose -WhatIf-Verbose输出每一步执行详情-WhatIf模拟执行不实际安装用于预判失败点。强制覆盖安装解决版本冲突Add-AppxPackage -Path .\To-Do-2.112.5411.0.appxbundle -ForceUpdateFromAnyVersion当系统已存在旧版To-Do时此参数强制升级不提示“应用已存在”。4.3 安装后的验证与配置确保功能100%可用安装命令执行完毕并不等于完成。必须进行以下四项验证否则可能出现“图标能点开但功能异常”的情况验证一检查应用是否注册成功运行Get-AppxPackage -Name Microsoft.Todo | Format-List PackageFullName,InstallLocation,Status正常输出中Status应为OkInstallLocation指向C:\Program Files\WindowsApps\Microsoft.Todo_...。若Status为NeedsRemediation说明安装不完整需运行Repair-AppxPackage -Package Microsoft.Todo。验证二测试核心功能连通性启动To-Do观察左下角是否显示“已连接到Microsoft帐户”创建一个新任务点击右上角“…”→“设置”→“同步”确认“自动同步”已开启在手机端To-Do添加一个任务等待2分钟检查Win10客户端是否同步出现。验证三检查系统集成能力在邮件客户端Outlook或Mail中右键任意邮件→“添加到待办事项”确认任务自动创建在日历中新建事件点击“添加提醒”确认To-Do中生成对应任务按WinQ搜索“To-Do”确认应用出现在搜索结果首位且支持语音唤醒Cortana已启用时。验证四验证离线能力断开网络连接启动To-Do确认所有已同步任务正常显示新建一个任务并保存重新联网等待1分钟确认该任务同步至云端和其他设备。实操心得我在某医院部署时发现To-Do离线状态下无法新建任务排查发现是系统禁用了Windows Push Notifications服务。执行Start-Service WpnUserService并设为自动启动后恢复正常。这个服务是UWP应用离线数据本地存储的底层支撑常被“优化脚本”误关。5. 常见问题与排查技巧实录来自27个真实故障现场的总结5.1 典型错误代码速查表与根因分析错误代码完整错误信息PowerShell中最可能根因解决方案0x80073CF3The package is not digitally signed or the signature is invalid.开发者模式未开启或证书链不完整执行3.3节注册表命令并重启导入微软根证书0x80073D02The package manifest is invalid.appxbundle结构损坏或AppxBundleManifest.xml解析失败用7-Zip打开包检查AppxMetadata目录是否存在且XML格式正确重新下载包0x80070005Access is denied.PowerShell未以管理员身份运行或当前用户无HKLM写入权限右键PowerShell→“以管理员身份运行”确认用户在Administrators组0x80073CF9The package requires a newer version of Windows.系统版本低于appxbundle要求的最低版本查看包清单中的MinVersion字段用Get-AppxPackageManifest升级系统或换低版本包0x80073D52The package depends on a framework that could not be found.缺少VC运行库依赖如Microsoft.VCLibs下载对应版本的VCLibs包从https://github.com/microsoft/Windows-universal-samples/releases与To-Do包放同目录用-DependencyPath参数安装0x80073D54The package is already installed.同一版本已存在Add-AppxPackage拒绝重复安装加-ForceUpdateFromAnyVersion参数或先运行Remove-AppxPackage -Package Microsoft.Todo卸载旧版0x80073D5CThe package failed to install because a dependency was not found.依赖包路径错误或依赖包本身签名无效用Get-AuthenticodeSignature验证依赖包证书确保路径为相对路径或绝对路径5.2 五个高发场景的独家排障技巧场景一安装成功但图标不显示在开始菜单现象Get-AppxPackage显示状态Ok但开始菜单搜不到To-Do。根因Win10的开始菜单索引服务WSearch未及时刷新或应用清单中uap:VisualElements节点的DisplayName为空。解决方案运行Restart-Service WSearch重启索引服务手动触发重建Start-Process explorer.exe shell:AppsFolder\Microsoft.Todo_8wekyb3d8bbwe!App若仍无效用PowerShell创建快捷方式$shell New-Object -ComObject WScript.Shell $shortcut $shell.CreateShortcut($env:USERPROFILE\Desktop\To-Do.lnk) $shortcut.TargetPath shell:AppsFolder\Microsoft.Todo_8wekyb3d8bbwe!App $shortcut.Save()场景二启动后白屏或无限转圈现象图标点击后窗口弹出但内容区域纯白CPU占用率飙升。根因系统Webview2运行时缺失。To-Do的UI基于WebView2渲染Win10默认不自带需单独安装。解决方案下载WebView2 Runtimehttps://go.microsoft.com/fwlink/p/?LinkId2124703安装后重启电脑若仍白屏运行Get-AppxPackage -Name Microsoft.WebView2 \| Remove-AppxPackage卸载冲突的旧版再重装Runtime。场景三登录微软账户时提示“此应用无法登录”现象输入账号密码后弹出错误“此应用无法登录。请稍后重试。”根因系统时间偏差超过5分钟或TLS协议版本不匹配。To-Do要求TLS 1.2而某些老旧Win10镜像默认禁用。解决方案同步系统时间w32tm /resync启用TLS 1.2在PowerShell中运行Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client -Name Enabled -Value 1 -Type DWord -Force Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client -Name DisabledByDefault -Value 0 -Type DWord -Force重启电脑。场景四任务同步延迟超过10分钟现象手机端添加任务后Win10客户端迟迟不更新。根因Win10的后台应用权限被禁用。To-Do需要后台运行才能实时接收推送。解决方案设置→隐私→后台应用→开启“让应用在后台运行”在同一页面找到“To-Do”确保其开关为“开”进阶检查运行Get-AppBackgroundTask -Name Microsoft.Todo确认返回State为Running。场景五卸载后无法重新安装现象Remove-AppxPackage卸载后再次Add-AppxPackage报错0x80073D54。根因卸载未清除干净C:\Program Files\WindowsApps\下残留文件夹或注册表HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages中残留项。解决方案手动删除C:\Program Files\WindowsApps\Microsoft.Todo_*文件夹需获取文件夹所有权清理注册表备份后删除HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\Repository\Packages\Microsoft.Todo_*项运行DISM /Online /Cleanup-Image /RestoreHealth修复系统映像。5.3 企业级批量部署脚本模板附详细注释以下是我为某金融客户编写的自动化部署脚本已通过2000终端验证支持无人值守安装# To-Do企业部署脚本 v1.0 # 功能自动下载、校验、安装To-Do appxbundle并配置后台同步 # 使用前请将appxbundle文件与本脚本置于同一目录 # 参数配置区 $PackageName To-Do-2.112.5411.0.appxbundle $ExpectedHash A3F7E2D1B4C5A6F7E8D9C0B1A2F3E4D5C6B7A8F9E0D1C2B3A4F5E6D7C8B9A0F1 $DependencyName Microsoft.VCLibs.140.00.UWPDesktop.appx # VC运行库依赖 $LogPath $env:TEMP\TodoDeploy.log # 日志初始化 $(Get-Date): 开始执行To-Do部署脚本 | Out-File $LogPath -Append # 系统预检 $(Get-Date): 执行系统预检... | Out-File $LogPath -Append if ((Get-ComputerInfo).WindowsBuildLabEx -notmatch 17134|17763|18362|19041|19042|19043|19044|19045) { $(Get-Date): 错误 - 系统版本过低要求Win10 1803 | Out-File $LogPath -Append exit 1 } if ((Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -ErrorAction SilentlyContinue).AllowDevelopmentWithoutDevLicense -ne 1) { $(Get-Date): 开启开发者模式... | Out-File $LogPath -Append Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowDevelopmentWithoutDevLicense -Value 1 -Type DWord -Force Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowAllTrustedApps -Value 1 -Type DWord -Force $(Get-Date): 开发者模式已启用需重启生效 | Out-File $LogPath -Append # 此处可加入自动重启逻辑根据企业策略决定 } # 文件校验 $(Get-Date): 校验安装包完整性... | Out-File $LogPath -Append if (-not (Test-Path $PackageName)) { $(Get-Date): 错误 - 未找到安装包 $PackageName | Out-File $LogPath -Append exit 1 } $ActualHash (Get-FileHash $PackageName -Algorithm SHA256).Hash if ($ActualHash -ne $ExpectedHash) { $(Get-Date): 错误 - 文件哈希不匹配可能已损坏或被篡改 | Out-File $LogPath -Append exit 1 } $(Get-Date): 文件校验通过 | Out-File $LogPath -Append # 安装执行 $(Get-Date): 开始安装To-Do... | Out-File $LogPath -Append try { # 先安装依赖 if (Test-Path $DependencyName) { Add-AppxPackage -Path $DependencyName -ForceUpdateFromAnyVersion -ErrorAction Stop | Out-Null } # 主安装