2

まず、私の下手な英語で申し訳ありません。私は自分の問題を説明しようとします。

次のように、スクリプト内で psexec を使用してクラスターを再起動しています。

node1 の script1: node1 で多くのタスク (サービスのシャットダウン、ステータスの確認など) を実行し、すべてのタスクが完了したら、psexec で node2 の script2 を起動します (psexec-d \ \ node2 script2)

node2 の script2: 多くのタスクを実行し、node1 で script3 を起動します。これは、node1でscript3を実行しようとしたときに、psexecで「アクセスが拒否されました」を受け取ったときです。(psexec-d\\nodo1 script3)

グループ管理者に属するユーザーでスクリプトを起動します

セキュリティ上の理由から、資格情報を .bat ファイルに残すのは安全ではないため、ユーザー名とパスワードを渡すことはできません。

追加情報:

W2k3 サーバーでスクリプトを実行しています net use を試しましたが、すべて問題ありません -u ユーザー名と -p ユーザー名を指定して psexec を試しましたが、すべて問題ありません 次の構文で psexec を実行しようとしました: psexec .exe -d \node1 cmd.exe "script3.bat" で、同じエラーが返されます。

よろしくお願いします

4

3 に答える 3

1

最後に、2番目のスクリプトでウォッチドッグプロセスを使用することにしました。そのため、スクリプトはpsexecによって起動されるのではなく、このプロセスによって起動されます。

あなたの助けと私を助けるために費やされたあなたの時間に感謝します。

よろしくお願いします

于 2008-12-11T16:06:23.433 に答える
0

これは、統合認証を使用してあまりにも多くのリンク サーバー ホップから得られる問題 (ダブル ホップ Kerberos 問題)に関連している可能性があります。

統合 Windows 認証は 2 つの異なる認証メカニズムをカバーするため、次のようになります。

  • NTLM v2 -および-
  • ケルベロス、

Kerberos を使用している場合、ユーザーのパスワードが IIS サーバーに渡されることはないため、IIS サーバー上のトークンがネットワーク上の別のマシンにホップする唯一の方法は、Kerberos 委任を使用することです。それが利用できない、または許可されていない場合、ホップは発生しません (実際に発生しているように聞こえます)。

デフォルトの資格情報を使用していて、現在のセキュリティ コンテキストが委任できない偽装トークンである場合、指定した資格情報は他のマシンにホップしません。Windows 統合認証は偽装トークンを作成するため、これが当てはまる可能性が非常に高くなります。

ソース:

于 2008-12-11T12:37:05.633 に答える
0

script2 を node1 にコールバックさせるのではなく、script2 へのコールを完了まで待機させることはできますか。

node1 の script1: node1 で多くのタスク (サービスのシャットダウン、ステータスの確認など) を実行し、すべてのタスクの完了後に psexec で node2 の script2 を起動します (psexec \ \ node2 script2)

node2 の script2: 多くのタスクを実行します。

node1 の script1: script3 を起動します。

于 2008-12-11T13:40:24.680 に答える