【发布时间】:2015-01-23 20:43:03
【问题描述】:
我正在使用 TFS 启动 PSExec 以运行创建安装程序的 InstallShield 进程。我们的 TFS 构建代理在 NETWORK SERVICE 帐户下运行。
我使用 -u -p 选项运行 PSExec,我能够运行该命令并成功地从命令提示符对远程计算机构建安装程序。
但是在 TFS 中,我总是收到 2250 错误代码并且安装程序无法构建。
为了隔离问题,我将 psexec 命令更改为以下...
PsExec.exe -accepteula \\<machine> -u <username> -p <password> xcopy /y c:\temp\testing.bat c:\temp\1.bat
如果我从命令行运行上述命令,它会复制文件。如果我从 TFS 运行上述内容(在批处理文件中调用上述内容),则会失败并显示 2250。
所以要模拟 TFS 正在做什么,我...
- 使用提升的管理员权限启动命令提示符
- 已发布
psexec -i -u "nt authority\network service" cmd.exe - 运行包含上述 xcopy 命令的批处理文件
因此,第 2 步使用 NETWORK SERVICE 帐户启动命令提示符。当我从此命令提示符运行步骤 3 时,我收到了相同的 2250 错误。所以这是很好的 b/c 现在 TFS 已经不存在了,而且我更接近真正的问题。
只是为了笑,我将 NETWORK SERVICE 添加到远程框的管理员组。这并没有解决问题。
所以这就是我所在的地方......
- 如果我使用管理员组中的登录名登录到 TFS 框,打开命令提示符,并使用 -u -p 参数运行 xcopy 命令批处理文件,一切正常。
- 如果我使用 NETWORK SERVICE 帐户启动 cmd 提示符并运行与步骤 1 中相同的批处理文件,则会收到 2250 拒绝访问。
所以在我看来,这个问题显然与 NETWORK SERVICE 帐户有关。问题是如何让 psexec 使用此帐户运行?
更新
以下对话框显示了管理员组中的 NETWORK_SERVICE 帐户,并且该帐户具有对路径 (c:\temp) 的完全访问权限。
【问题讨论】:
-
您确定 NETWORK_SERVICE 帐户在
<machine>上具有管理员权限并且可以读取和写入c:\temp?对于您的回答,问题似乎不是psexec,而是实际的xcopy -
是的,我确定。我将使用显示此内容的图像更新问题...
-
这里有点疯狂的猜测,但是您是否尝试将
LocalAccountTokenFilterPolicy注册表值设置为1HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system,以便您可以使用本地帐户进行远程管理? -
错误 2250 是 ERROR_NOT_CONNECTED,“此网络连接不存在”。您必须查看的那种岩石是安全软件,首先是防火墙。这个问题属于 serverfault.com
-
@Jcl 是的,我已将该键设置为 1。
标签: security tfs psexec windows-security network-service