2013-03-06 50 views
6

hello,无需CredSSP即可复制文件的双跳访问

我们拥有数百个虚拟机的大环境。在我们的服务部署过程中,我们需要将一些文件从build drop复制到所有这些机器上。

因此,我们有:

  • 用户机,其中部署脚本执行
  • 生成放置机器,其中的文件是
  • 目标机

PowerShell是使用脚本语言。喜欢的东西:

$buildDrop  = "\\sourceMachine\Build" 
$machineTarget = "targetMachine" 

Invoke-Command -ComputerName $machineTarget -ArgumentList $buildDrop -ScriptBlock { 
    Param($buildDrop) 
    Test-Path $buildDrop # Will return False 
} 

这种做法导致double hop issue,这我不能够解决由于CredSSP的功能不支持XP和2K3机。用户机器上调用的复制导致性能瓶颈(数据通过用户机器传输)。

是否有任何方法使所有目标机器始终可见堆积降落? 可能以某种方式将它们添加到受信任的位置或类似的东西?

在此先感谢!

回答

6

我找到了解决方案它适用于我们的环境。

如果没有Cred-SSP,不能通过双跳传输凭据,但是您可以在目标机器上运行某些内容而无需第一跳。

最简单的方法是使用PSEXEC-s标志(运行在系统帐户的远程过程),最后的字符串是这样的:

psexec \\someHost -s robocopy "\\stagingHost\Staging" "\\someHost\C$\Staging" /MIR 

您也可以启动一些PS脚本以同样的方式,只是确保script execution is allowed远程机器上:

psexec \\someHost -s "\\stagingHost\Staging\Script.ps1" SomeArg1 SomeArg2 

检查this文章,了解如何PSEXEC作品。 虽然someHost的服务

+0

+1。此外,通过在您创建并立即在目标计算机上运行的计划任务内执行此项工作,也可以实现同样的效果。 – 2016-10-19 22:52:50

1

CredSSP 解决双跳问题。

从等式中删除用户的桌面。在您的构建服务器上设置适当的构建&部署服务器/服务/应用程序,并从那里管理所有内容。展鹏有一个新的产品,可能会极大地帮助你这种情况,Deployment Manager

+1

我们有非常复杂的自定义解决方案与数百个用例,所以我们不能移动到别的东西。 我相信必须有解决方案。没有CredSSP的用户帐户令牌不能被转换。好。但必须有另一种方式。 – 2013-03-06 20:06:04

+0

我同意。必须有更好的解决方案。我正在尝试使用CredSSP的PowerShell工作流,并在使用CredSSP时重新启动计算机停止工作。真是惭愧,没有简单的解决方案 – 2014-07-08 12:20:27

0

如果你使用可以获取到其他机器的机器使用你的机器只复制文件:

$computers | % {copy '\\servershare\build' "\\$_\c`$\Temp"} 
$sb = {C:\Temp\Dosomething.txt args[0]} 
$computers | % {Invoke-command -comp $_ -scriptBlock $sb -argumentlist $arg} 
+0

我可以从我的机器上复制文件,即使没有将它们放到临时文件夹中,但在这种情况下,数据将从构建放置机器传输到用户机器,然后才能到目的地。因此,如果用户机器放置在另一个本地网络中,直接复制只需要五分钟,则需要数小时。 – 2013-03-13 12:20:06

相关问题