可以使用Invoke-Command在第三个系统上调用Invoke-Command吗?

时间:2016-12-22 11:23:47

标签: powershell invoke-command scriptblock

我有一个分段的Active Directory网络,其中多个VLAN只能与本地AD服务器通信,但所有AD服务器都可以相互通信。我希望有一个可以代理每个AD服务器的脚本,以便在每个VLAN的每个系统上运行命令。但是,我的代码似乎没有运行命令。

function RunRemote {  
    param([string]$ScriptBlock,[string]$Server,[string]$DC)  
    $icm = '[ScriptBlock]$sb=[ScriptBlock]::create(' + $ScriptBlock + ');icm -cn ' + $Server + ' -ScriptBlock $sb'  
    icm -cn $DC -ScriptBlock { $icm }   
    }  
$ScriptBlock = "date"   
$Server = "Comp01"  
$DC= "DC01"
RunRemote $ScriptBlock $Server

我没有收到任何错误,但发送的所有命令都没有在远程服务器上运行。如果我与AD服务器进行交互式会话,则“调用”命令将按预期工作到每个vlan。

1 个答案:

答案 0 :(得分:3)

我认为你有一个dubble hop问题。 您的凭据不会传递到下一个跃点。 您可以使用第一个调用作为参数向您发送凭据,然后在第二个调用中使用这些传递的凭据来创建凭证对象并将其提供给凭证参数。

或者您可以使用CredSSP。

this article helped me earlier