用户主文件夹在runas之后指向SYSTEM32文件夹

时间:2014-09-03 04:54:56

标签: windows

我在运行runas /USER:testuser cmdrunas /USER:testuser powershell时遇到问题:

  1. 如果testuser已打开RDP会话,%HOMEPATH%将指向\ Users \ testuser
  2. 如果testuser注销,环境对我来说很奇怪:

    PS C:\Windows\system32> echo $env:HOMEPATH
    \Windows\system32
    PS C:\Windows\system32> echo $env:APPDATA
    C:\Users\testuser\AppData\Roaming
    PS C:\Windows\system32> echo $env:USERPROFILE
    C:\Users\testuser
    PS C:\Windows\system32> cd ~
    PS C:\Windows\system32> cd $home
    PS C:\Windows\system32>        
    
  3. 我的预定脚本需要正确的%HOMEPATH%。这是预期的行为吗?我该怎么办?

    我已经在两个Win2008,Win7,Win2012上测试了它,结果相同。

    更新:最初的问题是挂起的计划任务。当我用runas测试它时,我发现ssh命令没有看到放置在用户目录中的配置并要求用户提供其他信息。

1 个答案:

答案 0 :(得分:0)

既然你提到了ssh,我就会抓住一个答案,因为我刚刚解决了类似的问题。我使用的是cwRsync 3.1.0,随附的示例脚本使用%HOMEPATH%来设置%HOME%以执行rsync。就像你经历过的那样,当使用' runas'如果目标用户未登录主机,则脚本将停止接受hostid,因为Windows \ system32.ssh不存在。 HOMEPATH设置为Windows \ system32。

当目标用户登录主机(但runas在不同用户的登录下运行)时,HOMEPATH设置为用户的配置文件路径(Users \)和.ssh路径确实解决了。

我的解决方案是更改脚本o使用%USERPROFILE%,而不是%HOMEPATH%。在https://serverfault.com/questions/29948/difference-between-profile-and-home-pathhttp://blogs.msdn.com/b/patricka/archive/2010/03/18/where-should-i-store-my-data-and-configuration-files-if-i-target-multiple-os-versions.aspx有讨论,据我所知,%HOMEPATH%表示用户内容,而%USERPROFILE%表示设置等,可能更适合指向.ssh。< / p>