保存 Windows 变量直到注销、关机等

保存 Windows 变量直到注销、关机等

使用 Windows(例如 10,但我希望这没关系),是否存在任何类型的环境变量,其生命期随着创建该变量的用户会话而结束?

我说的是一个简单的程序(例如.NET 程序)可以用来在关闭之前存储一个值,这样如果在用户注销 Windows 之前再次启动该程序,就可以恢复该值;如果用户注销 Windows,登录并启动该程序,则该变量将不再可用。

要求:

  • 我正在寻找一个操作系统功能,而不是我必须直接管理的东西,除非在新的 Windows 会话中启动程序时创建它
  • 基于文件的机制也可以
  • 我不希望上述程序潜伏在内存中并保存变量,我想终止该程序并仍然保留 Windows 中的变量
  • 如果变量被加密,那就更好了

答案1

注册表项“HKCU\Volatile Environment”似乎可以执行您想要的操作,尽管我没有找到有关此功能的任何文档。

我测试了以下内容(在管理员CMD,Windows 10中):

> reg query "HKCU\Volatile Environment" /v MYVOLATILEVAR
ERROR: The system was unable to find the specified registry key or value.

> reg add "HKCU\Volatile Environment" /v MYVOLATILEVAR /t REG_SZ /d avalue
The operation completed successfully.

> reg query "HKCU\Volatile Environment" /v MYVOLATILEVAR
HKEY_CURRENT_USER\Volatile Environment
    MYVOLATILEVAR    REG_SZ    avalue

在退出 cmd 并锁定屏幕后该值仍然保留,但在注销后消失。

reg 命令:https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/reg

在页面的评论中发现了测试密钥“HKCU\Volatile Environment”的想法https://ss64.com/nt/syntax-variables.html

答案2

我认为实现您的要求的唯一方法是在登录期间设置永久环境变量,然后在注销时撤消它。

您可以编写在登录和注销期间运行的脚本,使用 setx 命令

参考:

相关内容