我通过Windows计划程序在一个服务帐户下运行每日PowerShell脚本,该服务帐户更新本地svn工作副本并提交更改。 svn客户端是sliksvn,只能通过命令行运行。 当手动运行时,Powershell脚本按预期工作,svnauthentication使用caching的凭证。
当我给服务帐户必要的权利,并创build计划的任务作为服务帐户,一切工作正常。 但是,当我使用我的pipe理员帐户创build计划任务并将其设置为服务帐户运行时,svn身份validation失败。 我用Sysinternals procmon监视身份validation过程,发现在这种情况下,该进程试图findsvn凭据
C:\Users\Default\AppData\Roaming\Subversion\auth\svn.simple\
(不存在)而不是
C:\Users\ServiceAccount\AppData\Roaming\Subversion\auth\svn.simple\
caching的凭据实际存储在哪里以及它在成功案例中的位置。
为什么svn尝试查找默认用户的caching凭据,而不是运行任务的用户?
编辑:我find了解决办法。 这是Windows任务计划程序中的这个错误: https : //support.microsoft.com/en-us/kb/2968540
编辑:…现在可以通过此修复程序修复(在Server 2012 R2中): https : //support.microsoft.com/en-us/kb/3133689