2016-12-22 6 views
0

私は、複数のVLANがローカルADサーバとしか話せないセグメント化されたActive Directoryネットワークを持っていますが、すべてのADサーバは互いに話すことができます。私は各ADサーバーを介して各システムでVLANごとにコマンドを実行できるようにプロキシできるスクリプトを用意したいと思っています。しかし、私のコードはコマンドを実行するようには見えません。Invoke-Commandを使用して、3番目のシステムでInvoke-Commandを呼び出すことはできますか?

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に期待通りに機能します。

+0

は、古典的なダブルホップの問題のように聞こえます。ユーザーは自分の信用をリモートマシンに渡すことができますが、リモートマシンはネットワークロケーションにファイルを書き込むことができません。 – Venkatakrishnan

+0

'{$ icm}' - > '{iex $ icm}'または '[scriptblock] :: Create($ icm)' –

答えて

3

あなたはダブホップの問題があると思います。 資格情報は次のホップに渡されません。 最初のinvokeをパラメータとして使用して資格情報を送信し、2回目の呼び出しでは、渡された資格情報を使用して資格証明オブジェクトを作成し、資格証明パラメータに渡すことができます。

、またはCredSSPを使用することができます。

this article helped me earlier

関連する問題