Invoke-Command可以用来调用第三方系统的Invoke-Command吗?
Can Invoke-Command be used to call Invoke-Command on a third system?
我有一个分段的 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
我没有收到任何错误,但是发送的命令中有 none 运行 在远程服务器上。如果我与 AD 服务器进行交互式会话,那么 Invoke 命令将按预期对每个 vlan 工作。
我认为您遇到了 dubble hop 问题。
您的凭据不会传递到下一跃点。
您可以使用第一次调用作为参数发送您的凭据,然后在第二次调用中使用这些传递的凭据来创建凭据对象并将其提供给凭据参数。
或者您可以使用 CredSSP。
我有一个分段的 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
我没有收到任何错误,但是发送的命令中有 none 运行 在远程服务器上。如果我与 AD 服务器进行交互式会话,那么 Invoke 命令将按预期对每个 vlan 工作。
我认为您遇到了 dubble hop 问题。 您的凭据不会传递到下一跃点。 您可以使用第一次调用作为参数发送您的凭据,然后在第二次调用中使用这些传递的凭据来创建凭据对象并将其提供给凭据参数。
或者您可以使用 CredSSP。