ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Flyoobe Setup Actions 完全指南:从安装可选动作包到编写可复用的 PowerShell 动作与配方

Flyoobe Setup Actions 完全指南:从安装可选动作包到编写可复用的 PowerShell 动作与配方 桌面应用操作系统【免费下载链接】FlyoobeFly through your Windows 11 setup 项目地址https://gitcode.com/gh_mirrors/fl/Flyoobe点击查看免费下载本文围绕 Flyoobe 项目中的Setup Actions可选动作包机制展开首先说明如何在官方 Actions/README.md 指引下安装、启用并安全使用这些动作然后以完整指南 docs/setup-actions.md 为核心脉络深入讲解单脚本动作、带action.ini清单的动作包、Prepare/Finish/Utility三种相位、下拉选项参数、配方Recipe集成规则以及故障排查方法。读完本文你将能够在自己的 Windows 11 部署流程中编写、打包、导入并安全运行 Flyoobe 动作并判断哪些动作适合交给自动化配方。一、Setup Actions 是什么核心定位与设计哲学Flyoobe 是一个面向 Windows 11 安装流程OOBE/Setup的配置工具其核心功能广告、Edge、隐私、系统优化等都通过内置的设置数据库管理。但总有不适合放进设置数据库的一次性操作——例如重建图标缓存、创建系统还原点、打开某个 Windows 工具、执行一条安装后的收尾命令。Setup Actions 正是为此设计的逃生舱escape hatch。它的刻意设计目标是保持无聊且透明没有隐藏在背后的插件框架动作就是一个 PowerShell 脚本 一个可选的 INI 文件不自动运行动作存在≠动作执行。要么你手动点选启动要么显式地把配方安全recipe-safe的动作加入配方Recipe保持小巧可控整个机制只有一个执行模型没有外部控制台模式、特殊日志宿主、任意输入框、分类过滤器也没有(console)、(silent)这类魔法后缀见 docs/setup-actions.md 的What I deliberately left out一节。动作被刻意放在 Flyoobe 核心功能集之外。仓库中 Actions/ 目录下的每个子目录default-power-plan、clear-icon-cache、create-restore-point、christitus-winutil等都是构建可选Actions发布资产的包方便用户按需取用。二、安装与目录布局2.1 安装步骤根据 Actions/README.md 的安装说明从 Flyoobe 发布页Release page下载Actions资产包把其中的Actions文件夹解压到应用程序的Data文件夹内在Settings Advanced设置 高级中启用Setup Actions。2.2 最终目录结构Flyoobe/ |- Flyoobe.exe - Data/ - Actions/ - action-id/ |- action.ini - run.ps1安装完成后你可以在Setup Actions 页面导入动作也可以打开本地的 Actions 文件夹见 docs/setup-actions.md 的开启方式说明。这与 docs/setup-actions.md 中单个.ps1导入后被 Flyoobe 复制进Data\Actions包则整体复制进Data\Actions\Id的行为一致。2.3 运行安全模型不自动、需确认仓库 Actions/README.md 明确强调该文件夹中的任何内容都不会自动运行。手动动作必须经过明确的点击与确认动作只有在清单中显式声明RecipeAllowedtrue并且使用Prepare或Finish相位时才能参与配方。2.4 运行前的安全检查清单在运行任何动作之前Actions/README.md 建议至少确认阅读action.ini和run.ps1的内容特别注意RequiresAdmin是否需要管理员权限与Warning额外警告文本字段把会下载变化中的远程代码的动作视为外部软件参见仓库中的 christitus-winutil 动作它会从https://christitus.com/win拉取并执行当前版本的 WinUtil 脚本Warning字段明确声明代码在 Flyoobe 之外维护、可能独立变化在对系统做大面积修改前保留备份。三、编写动作从单脚本到动作包3.1 快速方式单个 PowerShell 文件对于个人使用的小型动作一个.ps1就足够了。官方推荐模板如下摘自 docs/setup-actions.md# Description: Clears my applications local cache. # Author: Your name $ErrorActionPreference Stop try { Remove-Item $env:LOCALAPPDATA\MyApp\Cache\* -Recurse -Force Write-Output Cache cleared. exit 0 } catch { Write-Error $_ exit 1 }导入时 Flyoobe 会把它复制到Data\Actions并把文件名用作动作的显示名称。如果没有额外的元数据它就是一个仅可手动运行的Utility动作。单脚本支持以下可选头注释必须放在前 40 行内每个字段使用一行#注释# Id: clear-my-cache # Description: Clears my applications local cache. # Version: 1.0 # Author: Your name # Phase: Utility # RequiresAdmin: false # RecipeAllowed: false # Warning: This closes MyApp before clearing its cache. # Options: Clear cache; Show cache folder这些头注释字段与action.ini中的字段一一对应见下文清单字段表。如果你需要翻译或者打算分享动作官方建议改用动作包形式。3.2 标准方式动作包action.ini run.ps1官方自带的动作都采用如下包结构my-action/ |- action.ini - run.ps1导入时选中action.iniFlyoobe 会验证包并把整个文件夹复制进Data\Actions\Id。包里可以包含辅助文件脚本通过$PSScriptRoot定位它们。完整的action.ini示例与仓库中 default-power-plan 包 一致[Action] Iddefault-power-plan NameDefault power plan Name.deStandard-Energieplan DescriptionChoose one of the built-in Windows power plans. Description.deWähle einen der integrierten Windows-Energiepläne. Version1.0 AuthorYour name PhaseFinish RequiresAdminfalse RecipeAllowedtrue Scriptrun.ps13.3 清单字段详解字段必填作用Id是稳定的动作 ID。只能使用字母、数字、点、下划线或连字符且必须以字母或数字开头。Name是在 Flyoobe 中显示的名称。Name.locale否翻译后的名称例如Name.de。Description否动作的简短说明。Description.locale否翻译后的说明。Version否信息性版本号默认1.0。Author否显示在动作详情中。Phase是Prepare、Finish或Utility三者之一。RequiresAdmin否若 Flyoobe 需要以管理员身份运行设为true。RecipeAllowed否允许动作被导出并被配方运行。对Utility动作无效果。Warning否手动运行前显示的额外确认文本。Warning.locale否翻译后的警告文本。Script是包文件夹内.ps1的相对路径。安全约束脚本必须留在自己的包文件夹内。Flyoobe 会拒绝试图逃逸该目录的路径The script must stay inside its package folder. Flyoobe rejects paths that try to escape it.。四、动态 UI# Options:下拉选项这是整个机制中唯一刻意保留的动态 UI 特性。在脚本靠前位置放一行Options用分号分隔选项# Options: Balanced; High Performance; Power Saver param([string]$choice) $ErrorActionPreference Stop try { switch ($choice) { Balanced { powercfg.exe -setactive SCHEME_BALANCED } High Performance { powercfg.exe -setactive SCHEME_MIN } Power Saver { powercfg.exe -setactive SCHEME_MAX } default { throw Unknown option: $choice } } if ($LASTEXITCODE -ne 0) { throw powercfg failed with exit code $LASTEXITCODE. } Write-Output Selected: $choice exit 0 } catch { Write-Error $_ exit 1 }关键行为Flyoobe 会把选中的文本作为第一个位置参数传给脚本参数名由你自己决定所以param([string]$choice)与param([string]$Option)都合法选项文本会写入配方。请把选项文本当作稳定的 ID如果重命名了某个选项那么包含旧文本的配方将变为无效——这是刻意的设计新的 Setup Actions 核心不会去猜测旧值可能代表什么Options行必须放在前 40 行内选项之间用分号分隔。对照仓库真实实现 default-power-plan 的 run.ps1 在头部声明# Options: Balanced; High Performance; Power Saver并接收$choice通过powercfg -setactive切换电源计划christitus-winutil 的 run.ps1 则声明# Options: Run utility并对非预期选项直接throw。可以看出这一机制的典型用法。五、相位机制Prepare、Finish 与 Utility相位可手动运行可从配方运行Prepare是在 Flyoobe 应用配方中其他改动之前Finish是在 Flyoobe 应用配方中其他改动之后Utility是永不仅限手动要让动作进入配方必须同时具备配方相位与显式许可PhaseFinish RecipeAllowedtrue配方只存储动作 ID 和如果有下拉框选中的选项。配方里永远不会包含 PowerShell 代码或本地脚本路径。这也意味着导入配方的那台 PC 上必须先安装好同一个动作。官方强烈建议只有当动作是可预测、非交互、且作为已确认的批处理一部分运行时安全才把它标记为配方安全recipe-safe。仓库中各内置包正好覆盖了三种相位default-power-plan与clear-icon-cache均为FinishRecipeAllowedtrue适合作为安装收尾的配方步骤而christitus-winutil是UtilityRecipeAllowedfalse需管理员、下载执行外部代码绝不能自动进配方。六、执行模型实时输出与真实错误Flyoobe 以如下参数启动 Windows PowerShell-NoProfile, -NonInteractive, -ExecutionPolicy Bypass, -File标准输出stdout与标准错误stderr会实时显示在动作页面上。官方推荐的模式是用Write-Output输出有意义的进度避免向日志灌入噪音失败时返回非零退出码。仅仅打印一行红色的错误文本是不够的——Flyoobe 只能信任进程结果。$ErrorActionPreference Stop try { Write-Output Starting... # Do the work here. Write-Output Finished. exit 0 } catch { Write-Error $_ exit 1 }调用原生.exe时必须自己检查$LASTEXITCODE一个失败的原生命令不会自动让 PowerShell 失败。仓库中 clear-icon-cache 的 run.ps1 是该模式的完整示范它用 ie4uinit.exe -ClearIconCache通知系统清缓存、强杀并重启 explorer、删除%LOCALAPPDATA%\IconCache.db及 Explorer 目录下的iconcache*文件成功路径exit 0异常路径重启 explorer 兜底后Write-Error并exit 1。七、编写动作时应当遵守的规则官方总结的经验法则见 docs/setup-actions.md 的A few rules I would stick to让脚本足够小确保别人能够真正审阅它不要把命令隐藏在编码字符串里不要下载并执行会变化的远程代码除非这就是动作的全部意义如果是必须在Warning中明确说明只在确实必要时设置RequiresAdmintrue。Flyoobe 不会静默提权脚本把交互式工具、启动器、用户驱动的工具挡在配方之外路径要加引号包内自带文件用$PSScriptRoot定位失败路径用throw或exit 1不要依赖看起来吓人的输出文本来表达失败。八、故障排查速查表动作包没有出现检查action.ini中是否包含Id、Name、Phase、Script确认Script指向包文件夹内真实存在的.ps1确认已在Settings Advanced中启用 Setup Actions。下拉框没有出现把# Options:放在前 40 行内选项之间用分号分隔。Flyoobe 报告动作成功但其实出错了在失败路径末尾使用exit 1调用原生命令后检查$LASTEXITCODE。配方找不到某个动作先在那台 PC 上安装相同 ID 的动作保持选项文本不变确认相位是Prepare或Finish且RecipeAllowedtrue。九、从实战角度理解内置动作包Actions/目录下的内置包可以直接当作学习范本与开箱即用的工具default-power-plan通过powercfg -setactive在 Balanced / High Performance / Power Saver 之间切换Finish相位适合配方收尾clear-icon-cache重建当前用户的图标缓存并重启一次 explorerchristitus-winutil从官方端点下载并启动 Chris Titus Tech 的 WinUtilRequiresAdmintrue、RecipeAllowedfalse是外部软件型动作的标准安全范式。此外Actions/还包含create-restore-point、defender-maintenance、explorer-tweaks、post-install-essentials、repair-built-in-apps、setup-preflight等包覆盖了还原点、Defender 维护、资源管理器微调、安装后必备项、内置应用修复、安装前预检等典型场景——你可以对照其action.ini与run.ps1观察相位、管理员需求与配方开关的取舍。要创建你自己的动作包完整的官方写法请阅读 docs/setup-actions.md即仓库根目录下的完整 Setup Actions 指南本文已完整继承了其中全部配置字段、示例代码与排查条目可作为该文档的速查解读版本使用。赞分享桌面应用操作系统【免费下载链接】FlyoobeFly through your Windows 11 setup 项目地址https://gitcode.com/gh_mirrors/fl/Flyoobe点击查看免费下载相关推荐Flyoobe 3 Setup Actions 开发指南为 Windows 11 部署编写安全、可复用、面向 Recipe 的 PowerShell 操作Flyoobe 3 Setup Actions 开发指南为 Windows 11 部署编写安全、可复用、面向 Recipe 的 PowerShell 操作 F桌面应用操作系统Flyoobe 3 Setup Actions 实战指南从零编写可安全运行的 Windows 11 PowerShell 扩展Flyoobe 3 Setup Actions 实战指南从零编写可安全运行的 Windows 11 PowerShell 扩展 Flyoobe 是面向 Win桌面应用操作系统UniGetUI MSI 安装包制作指南用 MsiInstallerWrapper 将 Inno Setup 安装程序封装为 GPO 可部署的 .msiUniGetUI MSI 安装包制作指南用 MsiInstallerWrapper 将 Inno Setup 安装程序封装为 GPO 可部署的 .msi 本篇桌面应用开发工具跨平台上一篇Android设备管理终极指南策略执行与远程控制完全解析下一篇Claude Agent SDK扩展点GitHub_Trending/cl/claude-code-sdk-python可定制化开发指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表