C# process.start()在提供凭据时引发win32Exception

C# process.start()在提供凭据时引发win32Exception,c#,process,credentials,win32exception,C#,Process,Credentials,Win32exception,我正在尝试使用Process.Start()启动lnk文件。如果没有提供凭据,这没关系,但如果提供了凭据,则会抛出异常。以下是示例代码: 这个很好用 var processStartInfo = new ProcessStartInfo { FileName = @"F:\abc.lnk", }; using (var process = new Process()) { process.StartInfo = processStartInfo; process.Sta

我正在尝试使用Process.Start()启动lnk文件。如果没有提供凭据,这没关系,但如果提供了凭据,则会抛出异常。以下是示例代码:

这个很好用

var processStartInfo = new ProcessStartInfo
{
    FileName = @"F:\abc.lnk",
};

using (var process = new Process())
{
    process.StartInfo = processStartInfo;
    process.Start();
}
但此代码引发Win32Exception:“指定的可执行文件不是此操作系统平台的有效应用程序”

var processStartInfo = new ProcessStartInfo
{
    FileName = @"F:\abc.lnk",
    UserName = userName,
    Password = securePassword,
    Domain = domain,
    UseShellExecute = false,
};

using (var process = new Process())
{
    process.StartInfo = processStartInfo;
    process.Start();
}
我的操作系统是32位的,程序也很简单

我需要这些凭据,因为文件位于网络驱动器上

任何帮助都将不胜感激

假设“当UseShellExecute为false时,您只能使用流程组件启动可执行文件”,因此向其传递.lnk文件可能会失败

Process process = new Process();
process.StartInfo.FileName = "F:\abc.lnk";
process.StartInfo.Arguments = "use \\\\computerName\\share password /user:UserName";
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.UseShellExecute = false;
process.Start();
process.WaitForExit();
process.Dispose();
这里也有类似的问题:

假设“当UseShellExecute为false时,您只能使用流程组件启动可执行文件”,因此传递一个.lnk文件可能会失败

这里也有类似的问题:

我该如何使用它?“使用\\\\computerName\\share”F驱动器位于网络上。我假设它是这样的:process.StartInfo.Arguments=“使用\\\\computerName\\share/user:”;?我怎么用这个?“使用\\\\computerName\\share”F驱动器位于网络上。我假设它是这样的:process.StartInfo.Arguments=“使用\\\\computerName\\share/user:”;?