gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 10:25:08 25 4
gpt4 key购买 nike

上下文:

我正在尝试在 Windows Server 2012 R2 上设置 Jenkins (2.223) 构建服务器(在这种情况下使用 msbuild 构建)。 Jenkins 设置为服务并作为 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

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

附加信息:
  • 我能够毫不费力地在我的本地 Windows 10 桌面上运行它。执行 dir 时我仍然得到不同的结果命令作为我的用户与 Jenkins 服务,但他们都碰巧有 systemprofile\.nuget\packages目录可用。
  • 在 2012 服务器上,我的管理员用户的 $env:UserName 和 $env:ComputerName 是 AdministratorWIN-64VG7CF1QK3分别。 Jenkins 的本地系统 $env:UserName 和 $env:ComputerName 都是 WIN-64VG7CF1QK3 .
  • 最佳答案

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

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

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

    关于Windows systemprofile 目录根据用户显示不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60657624/

    25 4 0
    文章推荐: Java如何正确获取List数据