配置文件包括服务器域帐户的 Program Files 文件夹

配置文件包括服务器域帐户的 Program Files 文件夹

Windows Server 2016 安装有 3 个远程桌面服务 (RDS) 会话主机服务器和一个域控制器。为 RDS 用户配置了一个用户组,其中包含一些设置的组策略。

问题:

使用域管理员帐户登录到其中一个 RDS 会话主机服务器,更改 c:\Program Files 下某个文件夹中的文件。如果我现在使用相同的域管理员登录到另一台服务器,则该文件也会在该服务器上发生更改!我根本没有碰过那台服务器!

(我确实知道如果我更改与用户相关的文件就会发生这种情况,例如在 c:\Users\ 下的用户配置文件夹中,这些是某种漫游配置文件。)

这是否意味着“c:\Program Files\”现在也包含在用户配置文件中...?这完全出乎意料,我找不到任何提示或文档来证明这一点。

这非常烦人,因为我并不总是希望这些更改完全相同。它“可能”对一组 RDS 服务器有用,但它很诡异 - 这种“远距离操作”。

当我使用本地管理员登录时,我更改的文件没有变化。所以看起来整个 C 盘都已成为用户配置文件的一部分……?

相反,在本地登录中在“c:\Program Files”文件夹中创建的文件在任何域登录中都是不可见的,反之亦然。

DFS(分布式文件系统)未配置。除非它默认配置自己?这是从头开始的全新安装。

重现步骤:

 log in with a local admin login
 create a folder "test-local" under c:\Program Files
 create a text file "test-local.txt" in that folder 
 sign out

 log in with a domain account (domain admin)
 look into c:\Program Files - the folder "test-local" is not present
 create a folder "test-domain" under c:\Program Files
 create a text file "test-domain.txt" in that folder 
 sign out

 log back in with the local admin account
 the folder "test-domain will not be present, you'll see only the "test-local" folder

答案1

如果你尝试在未提升权限的情况下修改 C:\Program Files 中的文件,并且开启了 UAC,Windows 会“虚拟化”写入操作,实际写入到相关路径而非C:\Users\you\AppData\Local\VirtualStore真实位置,并在资源管理器中进行映射,这样它看起来就像您的更改已成功一样。这是为了向后兼容喜欢将数据写入 Program Files 的旧程序(在 Vista 中很糟糕且已弃用)。

很可能这个 VirtualStore 路径是漫游配置文件或等效文件的一部分,然后漫游到其他服务器,因此您的更改会跟随您。尽管 AppData 的本地部分会漫游似乎很奇怪。不过,还是有一些值得思考和进一步挖掘的东西。

解决方法是,确保您正在以提升的权限运行您正在编辑/创建的文件。

相关内容