2014-09-03 54 views
0

我有运行runas /USER:testuser cmdrunas /USER:testuser powershell一个问题:用户主目录指向运行方式后SYSTEM32文件夹

  1. 如果TESTUSER已开通RDP会话,%HOMEPATH%点\用户\ 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>   
    

我需要一个正确的%HOMEPATH%为我安排得离谱PT。它预期的行为?我能做些什么?

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

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

+0

HOMEPATH是传统技术,您使用它的目的是什么? – 2014-09-03 05:14:43

+0

我已更新帖子。我的预定脚本找不到用户配置文件(gpg,git,ssh),它看起来像%HOMEPATH%变量是负责。 – maxnasonov 2014-09-03 05:40:20

+0

嗯,这只是一个环境变量。您的脚本可以将其设置为任何它需要的。 – 2014-09-03 07:55:22

回答

0

既然你提到了ssh,我会试着回答一个问题,因为我刚刚通过类似的问题。我使用的是cwRsync 3.1.0,随附的示例脚本使用%HOMEPATH%为rsync执行设置%HOME%。就像你经历的那样,当目标用户未使用'runas'登录到主机时,脚本暂停接受hostid,因为Windows \ system32.ssh不存在。 HOMEPATH设置为Windows \ system32。

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

我的解决方案是更改脚本使用%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。

相关问题