🔄 客户端机器的个人用户文件 (PUF) 备份与恢复
🧠 概述
本指南说明如何在客户端计算机和网络共享之间备份和还原选定的用户文件和文件夹(个人用户文件或 PUF)。此设置在无盘启动环境中特别有用,在这种环境中,用户数据在重新启动时通常会丢失。
🛠️ 问题
在使用无盘启动技术的环境中,当客户端重新启动时,用户数据(如保存的游戏或个人配置)会丢失。为了提供更持久的体验,您需要一种方式来自动保留和恢复此数据。
✅ 解决方案
通过创建以下脚本来实现基本的漫游式配置文件系统:
- 从网络在登录时还原用户数据。
- 在注销时将用户数据备份到网络。
这是通过两个简单的批处理脚本完成的:Login.bat 和 Logout.bat。
⚠️ 注意:这些脚本中使用的文件路径必须自定义以匹配您的特定游戏标题和客户端映像布局。这些是示例,可能需要修改。
💾 示例脚本
在客户端计算机上本地存储这些脚本,并从管理员命令提示符进行测试以验证行为。
🧰 工作原理
- 集中式
SavePaths.txt定义所有网络源和本地目标路径对。 Login.bat脚本从网络复制到本地。Logout.bat脚本从本地复制到网络。
📄 SavePaths.txt
每行包含由管道 (|) 分隔的一对:
\server\Save\AppData\Roaming\Goldberg UplayEmu Saves\13504|C:\Users\Administrator\AppData\Roaming\Goldberg UplayEmu Saves\13504
\server\Save\Offline\Call of Duty - Black Ops\players\save|E:\Offline\Call of Duty - Black Ops\players\save
\server\Save\AppData\Roaming\DarkSoulsIII|C:\Users\Administrator\AppData\Roaming\DarkSoulsIII
:: Add more lines as needed...
将此文件保存为 SavePaths.txt,位于脚本所在的同一文件夹中。🔁 Login.bat(网络 → 本地)
@echo off
setlocal enabledelayedexpansion
:: Modify this to reflect your current working directory if needed
set "pathFile=SavePaths.txt"
set "user=%1"
for /f "usebackq tokens=1,2 delims=|" %%A in ("%pathFile%") do (
set "src=%%A\%user%"
set "dst=%%B"
echo Restoring from !src! to !dst!
xcopy /e /y /j /i "!src!" "!dst!" >nul
)
echo Login restore complete.
💾 Logout.bat(本地 → 网络)
@echo off
setlocal enabledelayedexpansion
:: Modify this to reflect your current working directory if needed
set "pathFile=SavePaths.txt"
set "user=%1"
for /f "usebackq tokens=1,2 delims=|" %%A in ("%pathFile%") do (
set "src=%%B"
set "dst=%%A\%user%"
echo Backing up from !src! to !dst!
xcopy /e /y /j /i "!src!" "!dst!" >nul
)
echo Logout backup complete.
⚙️ 与 ggLeap 集成
- 登录到 ggLeap Web 管理控制台。
- 导航至:
Settings > Client Configuration > Advanced。 - 单击"Add Command"。
🔁 添加登录脚本命令
- 命令名称:
RestorePUF - 完整路径:
C:\Path\To\Login.bat - 单击"Save"。
💾 添加注销脚本命令
- 命令名称:
BackupPUF - 完整路径:
C:\Path\To\Logout.bat - 单击"Save"。
⚠️ 确保完整路径正确 — 否则脚本将无法执行。
- 单击"Save Changes"以应用配置。
📌 重要注意事项
- 如果您正在运行无盘映像,请确保将这些脚本更改提交到主映像。
- 确保您的网络共享在登录/注销时可靠地访问。
- 在部署到所有计算机之前,请在沙箱中彻底测试脚本。
📌 额外福利:社区提供的 Ludusavi 游戏存档备份和还原工具
概述
为了简化我们的咖啡厅和校园计算机的游戏存档便携性,我们在游戏数据库中添加了专门的 Ludusavi 条目。Ludusavi 是一个开源游戏存档管理器,利用 PCGamingWiki API 维护最新的存档文件位置目录。它由大社区开发和维护,完全免费许可——请考虑支持开发者!
先决条件
- ggRock 映像,支持 PowerShell
- SAPIEN PowerShell 的校园许可证(用于将包装器打包为可便携的
.exe) - 使用支持的文件系统(例如 NTFS)格式化的 USB 存储设备
安装和配置
- 部署包装器
- 克隆或下载包装器存储库:
git clone [https://github.com/Skylancer187/Gaming-Automations.git](https://github.com/Skylancer187/Gaming-Automations.git)
- 使用 SAPIEN PowerShell Studio 将 PowerShell 脚本构建为可执行文件。
- 将生成的
Ludusavi-Wrapper.exe复制到 GGLeap 映像。
- 在 GGLeap 中映射应用
- 在 GGLeap 管理控制台中,导航至Settings → Client Configuration → Games/Apps。
- 找到 Ludusavi 应用。
- 将"Executable Path"指向
Ludusavi-Wrapper.exe。 - 分配任何需要的启动参数(默认不需要)。
使用工具 🔄
在咖啡厅或校园计算机上启动时,包装器将:
- 获取最新 Ludusavi
- 从 GitHub 自动下载最新的 Ludusavi 版本。
- 检测 USB 驱动器
- 等待插入 USB 设备。
- 选择操作
- 提示用户在
\<USB-root>\ludusavi下备份或还原存档文件。
- 运行 Ludusavi CLI
- 执行适当的 Ludusavi 命令以将游戏存档复制到/从 USB 复制。
- 存档包装器版本
- 将当前使用的 Ludusavi 可执行文件复制到 USB 驱动器的根目录,以便用户始终为将来的使用提供相同的版本。
为什么使用 Ludusavi?
- 广泛覆盖 – 支持数百个缺乏内置云保存的 PC 游戏。
- 最新 – 使用 PCGamingWiki API 保持存档文件路径最新。
- 便携 – 从任何 USB 驱动器运行,无需管理员级别的安装。
- 免费和开源 – 无许可成本;社区驱动。
资源和支持
- 包装器源代码:https://github.com/Skylancer187/Gaming-Automations
- Ludusavi 项目:https://github.com/mtkennerly/ludusavi
- 游戏存档位置参考:https://www.pcgamingwiki.com/wiki/Home
更新于: 24/04/2026
谢谢!
