c# - 给定凭据时process.start()引发win32Exception

我正在尝试使用Process.Start()启动lnk文件。当不提供凭据时很好,但是在提供凭据时抛出异常。这是示例代码:

这很好

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

using (var process = new Process())
{
    process.StartInfo = processStartInfo;
    process.Start();
}


但是此代码引发Win32Exception:“指定的可执行文件不是此OS平台的有效应用程序”。

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位的,程序也是如此

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

任何帮助将不胜感激!!

最佳答案

docs说“当UseShellExecute为false时,您只能使用Process组件启动可执行文件”,因此将其传递给.lnk文件时应该会失败。

这里类似的问题:Run application via shortcut using Process.Start C#