可扩展变量
某些沙盒设置可能包含 变量。这些是占位名称,将被替换为可能针对特定计算机和用户账户的实际文本。例如:
在这个简单的示例中,沙盒会将 Personal 变量扩展为 文档 文件夹的实际路径。
下表列出了沙盒能够识别的变量。
变量名称 | 展开为 |
---|---|
SbieHome | 沙盒安装的根路径 |
sandbox | 程序运行所在的沙箱名称。 示例:DefaultBox |
user username |
程序运行所在的用户账户。 示例:joe |
sid | 标识程序运行用户账户的 SID 字符串。 示例:S-1-5-21-414-171-1981-1005 |
session | 程序运行所在的登录会话编号。 示例:1 |
ProgramFiles | 程序文件夹的位置。 示例:C:\Program Files |
SystemRoot | Windows 安装文件夹的位置。 示例:C:\Windows |
SystemDrive | %SystemRoot% 的前两个字符。 示例:C: |
DefaultSpoolDirectory | 打印缓冲文件夹的位置。 示例:C:\Windows\System32\spool\printers |
UserProfile | 用户账户根文件夹的位置。 示例:C:\Users\joe |
AllUsersProfile | 共享用户账户根文件夹的位置。 示例:C:\ProgramData |
HomeDrive HomePath HomeShare |
由注册表键 HKEY_CURRENT_USER\Volatile Environment 定义的用户账户根文件夹的部分位置。 |
temp tmp |
由注册表键 HKEY_CURRENT_USER\Environment 定义的 Windows 临时文件夹位置。 示例:C:\Windows\Temp |
Personal AppData Local AppData Favorites 及其他 |
Windows 资源管理器已知的用户账户和系统文件夹的位置。详情请参见 Shell Folders |
模板变量
全局模板是沙盒安装的一部分,位于沙盒安装文件夹的 Templates.ini 文件中。可以在 Sandboxie Ini 中另行添加本地模板。任何模板都可以以 %Tmpl.SomeVariableName% 形式引用模板变量。这些变量名不是沙盒核心自带的,必须在 Templates.ini 或 Sandboxie.ini 文件的 [TemplateSettings] 节中定义。
变量覆盖
上表中的任何变量,包括 Shell 文件夹 和模板变量,都可以通过 Sandboxie Ini 配置文件进行覆盖。要覆盖变量,只需添加以 Ovr. 前缀开头的参数。
例如:
当以这种方式覆盖变量时,其展开值将始终与配置文件中指定的值一致。
注册表回退
上表中的某些变量取自系统注册表。这些变量包括 ProgramFiles 及其后所有出现在表内的变量。对于这些变量,可以在 Sandboxie Ini 配置文件中指定“回退”值。要为变量指定回退方式,添加以 Reg. 前缀开头的参数。
例如:
请注意,上文描述的 “Ovr.” 覆盖方式会让沙盒忽略注册表。另一方面,只有当在注册表中找不到需要展开的变量时,沙盒才会检查 “Reg.” 的回退值。这意味着,如果为同一个变量 X 同时指定了 Ovr.X 和 Reg.X,则变量展开时始终使用 Ovr.X,Reg.X 则不会生效。
通常建议首选 “Ovr.” 覆盖方式,而不是 “Reg.” 回退方式。