我的 Windows10 现在有两个用户,用户 A 和用户 B ,用户 A 是管理员账户,安装了一些软件可以多用户共用。用户 B 是普通账户,虽然可以直接打开用户 A 安装的软件,但是设置都是全新的。我查了下,用户 A 的应用设置数据应该都在 C:\Users\UserA\AppData\Local
这个目录下,请问有什么策略可以把这里的数据直接共享给其他用户吗?
1
singerll 2022-08-07 12:56:53 +08:00 via Android
把软件装到非 user 文件夹
|
2
codehz 2022-08-07 13:08:26 +08:00 via iPhone
你要用来隔离就不能这样用,不然普通用户可以一键获得管理员用户的权限)
|
3
Biwood OP |
4
codehz 2022-08-07 14:05:04 +08:00 via iPhone
@Biwood 程序自己决定写到 appdata 的话基本没啥官方方法去让他写别的地方,可以考虑用 portable 版
|
5
h404bi 2022-08-07 14:07:25 +08:00
你想共享的这些数据是 immutable 的还是 B 可写的,如果是可写的这样用有风险,B 可以写入危险数据让管理员 A 进行交互。如果是 immutable 的,安装时把共享的数据放在 %ProgramData% 下就行,不过这取决于软件对这个的支持。
|
6
Biwood OP @codehz 嗯,目前有部分用 portable 版可以正常用,其他的得去找找官方有没有提供,实在不行只能手动复制一份 AppData 过去了
|
7
mcone 2022-08-07 14:28:26 +08:00
管理员把对应的 appdata 给 mklink 出去,再 mklink 给对应的用户名下就行了
不过这样做风险其实挺大的,除非两个用户都是你在用…… |
8
codehz 2022-08-07 17:38:48 +08:00 via iPhone
(考虑到某些程序可能是读取环境变量的,所以可以考虑修改环境变量 appdata localappdata 来实现,还不行就得 hook 了(
|
9
hez2010 2022-08-07 23:49:58 +08:00 via Android
全局的程序数据在 C:\ProgramData 这个隐藏文件夹里
|
10
aflynoob 2022-08-08 00:05:57 +08:00 via iPhone
用软连接映射到 onedrive 。只不过配置时候用不同的用户目录而已,onedrive 记得别放用户目录里了。
|
11
cnbatch 2022-08-08 02:15:24 +08:00
C:\Users\Public 这个文件夹内的目录及其子目录,是所有用户都能使用的,有写权限。
基于此,有个思路也许可以试试,可以避免 mklink 到管理员的账户文件夹,但又能大家一起用。 首先,在 Public 文件夹内创建一个新目录,例如叫做 C:\Users\Public\NewData 。 接着,把软件在 AppData\Local 的数据文件夹剪切到它里面去。假设原数据是在 C:\Users\UserA\AppData\Local\SoftwareData ,那就把 SoftwareData 转移到 NewData 那里,变成 C:\Users\Public\NewData\SoftwareData 。 然后使用 mklink ,把 C:\Users\Public\NewData\SoftwareData 软链接到各个用户的 AppData\Local 里面去。 这样一来,大家都可以共享软件数据,但又能继续隔离权限。 |
12
nothingistrue 2022-08-08 09:16:37 +08:00
shell:Common AppData , %ProgramData% , 即 C:\ProgramData ,是放共享程序文件的目录
|