我在运行runas /USER:testuser cmd
或runas /USER:testuser powershell
时遇到问题:
如果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%。这是预期的行为吗?我该怎么办?
我已经在两个Win2008,Win7,Win2012上测试了它,结果相同。
更新:最初的问题是挂起的计划任务。当我用runas测试它时,我发现ssh命令没有看到放置在用户目录中的配置并要求用户提供其他信息。
答案 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-path和http://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>