的过程.开始异常:"目录名无效"
本文关键字:quot 无效 过程 开始 异常 | 更新日期: 2023-09-27 17:50:41
我有一个Process.Start
方法的实现,在我的Windows 7专业64位开发机器上失败,而在我们的Windows 2008测试环境中工作。
const string CommandDirectory = @"C:'Program Files (x86)'Command";
var process = new Process
{
StartInfo =
{
FileName = string.Format("{1}{0}MyExecutable.exe", Path.DirectorySeparatorChar, CommandDirectory),
RedirectStandardError = true,
RedirectStandardOutput = true,
UseShellExecute = false,
UserName = userName,
Password = securePassword,
Domain = "MYDOMAIN",
},
};
process.Start();
在process.Start();
上,我在开发机器上得到以下异常:
System.ComponentModel.Win32Exception occurred
HResult=-2147467259
Message=The directory name is invalid
Source=System
ErrorCode=-2147467259
NativeErrorCode=267
StackTrace:
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
InnerException:
我已经尝试了一些事情:
我已经确保我分配给进程的用户帐户对可执行文件所在的路径以及%systemroot%位置具有完全的权限。我还确保用户在本地安全策略中具有"身份验证后冒充客户端"的权限。
我尝试显式地将
ProcessStartInfo.WorkingDirectory
设置为CommandDirectory
。当我这样做时,可执行文件启动但立即崩溃,没有任何解释。我通过删除
UserName
、Password
和Domain
属性在我的开发机器上创建了这个函数,以便它使用我的个人凭据。但这对于部署来说是不实际的。这使我觉得问题似乎与凭证和权限有关。
谁能告诉我做错了什么?
@Julien Lebosquain的评论让我找到了答案。我需要以想要模拟的用户的身份在本地登录一次。这将创建默认的用户文件夹。
假设,我调用的可执行文件需要写入AppData或用户目录的另一个子文件夹。