3

私はexeファイルをコピーしましたが、次のコードを使用しても問題ありませんでしたが、今はそれを実行したいのですが、これについて誰でも助けてもらえますか. 注:リモートデスクトップを介してサーバーにアクセスできますが、これを手動で行うことはできません.数十のサーバーがあり、psexなどのプログラムを実行することはできません.

WindowsIdentity wi = new WindowsIdentity(token);

//Next I set the WindowsImportsonationContext

WindowsImpersonationContext impctx = wi.Impersonate();
System.IO.File.Copy("C:\\output.html", "\\\\PW42\\c$\\output1.html", true);
System.Diagnostics.Process p = new System.Diagnostics.Process();
try
{
    System.Diagnostics.Process.Start(@"\\PW42\c$\txt.bat");
    //runFile();
}
catch
{
    Console.WriteLine("error");
}
4

1 に答える 1

3

サーバーへのアクセスに応じて、psexecなどのプログラムを使用するか、WMI を使用してファイルをリモートで起動できます。

サンプルの psexec コマンドは次のようになります。

psexec \\computername -u remoteusername filepath(on remote computer) arguments

Psexec は、要求された場合に事前にファイルをコピーし、代わりにコンピューターのリストに対して実行できます ( に置き換えます\\computername) @computer-list.txt。WMI では、Win32_Processクラスに接続し、新しいオブジェクトを作成して開始する必要があります。このスレッドの2 番目の投稿は機能する可能性があります。

残念ながら、これらのオプションは両方とも、実行中のワークステーションから複数のファイアウォール ルール (RPC や WMI など) を使用できるようにする必要があります。会社でファイアウォール経由の RDP アクセスのみが有効になっている場合、これらのいずれも機能しない可能性があります。

于 2010-08-29T05:46:19.637 に答える