2012-04-11 6 views
1

C#でリモートから* .tlbファイルを登録するために使用しているC#コードがあります。x64ベースのWindowsマシンでリモートでこのコードを実行しない

.\PsExec.exe \\* -u "username" -p "password" -h -c "MyExe.exe" 

それは、x86マシン上の細かい動作しますが、次のエラーでのx64マシン上で倒れた:-2146232576私は、次のコマンドを使用してPsExecは(PowerShellを)使用して、それを展開しています。

* 64ビットマシンで* .exeをローカルに実行すると問題なく動作します。コードは以下の通りです:

static void Main(string[] args) 
{ 
    try 
    { 
     Directory.CreateDirectory(@"C:\Directory"); 
    } 
    catch(Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
    finally 
    { 
     try 
     { 
      File.Copy(@"\\x.x.x.x\MyDll.dll", @"C:\Directory\MyDll.dll"); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
     finally 
     { 
      try 
      { 
       var p = new Process 
          { 
           StartInfo = 
            { 
             FileName = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe", 
             Arguments = @"C:\Directory\MyDll.dll", 
             UseShellExecute = false 
            } 
          }; 


       var q = new Process 
          { 
           StartInfo = 
            { 
             FileName = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe", 
             Arguments = @"C:\Directory\MyDll.dll /tlb", 
             UseShellExecute = false 
            } 
          }; 


       var r = new Process 
          { 
           StartInfo = 
            { 
             FileName = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe", 
             Arguments = @"C:\Directory\MyDll.dll /codebase", 
             UseShellExecute = false 
            } 
          }; 

       p.Start(); 
       q.Start(); 
       r.Start(); 
      } 
      catch(Exception z) 
      { 
       Console.WriteLine(z.Message); 
      } 
     } 

     Console.WriteLine("Done and Done"); 
    } 
} 

答えて

3

あなたが取得しているエラーは、1792年= ERROR_NETLOGON_NOT_STARTED =「試みがログオンしましたが、ネットワークログオンサービスが開始されませんでした。」です

このarticleは、Mark RussinovichがPsExecのセキュリティ面について語っています。

これを-iオプションで実行してみてください。

関連する問題