Windows systemprofile 目录根据用户显示不同

Windows systemprofile Directory Showing Differently Based on User

上下文:

我正在尝试在 Windows Server 2012 R2 上设置 Jenkins (2.223) 构建服务器(在本例中使用 msbuild 构建)。 Jenkins 设置为服务,运行s 设置为 Local System

问题:

我 运行 遇到了一个问题,我可以 运行 以管理员用户身份进入 RDP 时构建脚本,但不能通过 Jenkins 运行 构建脚本。经过一些挖掘,我发现 Jenkins 没有找到具有所需构建引用 (C:\Windows\System32\config\systemprofile\.nuget\packages) 的目录。通过更多调查,我发现目录 C:\Windows\System32\config\systemprofile 似乎不一致。

我可以通过我的管理员帐户 运行 命令 dir C:\Windows\System32\config\systemprofile 我得到:

     Directory: C:\Windows\System32\config\systemprofile


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----         3/11/2020   9:43 AM            .dotnet
d----         3/11/2020   2:27 PM            .nuget
d----          3/9/2020   1:49 PM            .ssh
d----         8/22/2013   6:36 AM            AppData
-a---          3/2/2020   3:41 PM     262144 ntuser.dat

我可以通过 Jenkins 运行 相同的命令 (dir C:\Windows\System32\config\systemprofile),我得到:

    Directory: C:\Windows\System32\config\systemprofile


Mode                LastWriteTime     Length Name                              
----                -------------     ------ ----                              
d----          3/9/2020   1:49 PM            .config                           
d----          3/6/2020   2:50 PM            .groovy                           
d----         8/22/2013   8:39 AM            AppData

我需要 Jenkins 看到 ...\systemprofile\.nuget\packages\ 中的引用以完成构建(Jenkins 服务通过 nuget restore 命令 运行 将引用放在那里,所以这对我来说似乎是合理的)。老实说,我不熟悉 dir 给出不同结果的概念。我怀疑 Windows 恶作剧,但我很好奇到底发生了什么 - 为什么我会根据用户 运行 的命令得到不同的结果?

附加信息:

关于我的问题的两条评论(mklement0zett42)很好地回答了这个问题,使用它们我能够更好地理解并解决我的问题。

事实证明,Jenkins 确实默认安装了 32 位 JRE - 它最终默默地查看 SysWOW64 而不是 System32(但仅在 msbuild 命令期间而不是nuget restore 命令?)。

无论如何,解决方案是按照 zett42 的建议将 Jenkins 配置为使用 64 位 JRE。 See this answer.