0

我有一个分段的 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 服务器进行交互式会话,则 Invoke 命令对每个 vlan 都按预期工作。

4

1 回答 1

3

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

或者您可以使用 CredSSP。

这篇文章早些时候帮助了我

于 2016-12-22T13:24:16.150 回答