我有一段C#代码,用于在C#中远程注册* .tlb文件。我正在使用PsExec(Powershell)通过以下命令进行部署:
.\PsExec.exe \\* -u "username" -p "password" -h -c "MyExe.exe"
它在x86机器上可以正常工作,但在x64机器上会出现以下错误:
-2146232576
。如果我在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");
}
}
最佳答案
您将收到的错误是1792 = ERROR_NETLOGON_NOT_STARTED =“已尝试登录,但未启动网络登录服务。”
马克·鲁西诺维奇(Mark Russinovich)撰写的这份article讨论了PsExec的安全性方面。
尝试使用-i选项运行它。
关于c# - 为什么此代码不能在基于x64的Windows计算机上远程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10102755/