提供的用户帐户时,System.Diagnostics.Process.Start将无法在启动时工作

时间:2011-01-31 18:23:20

标签: vb.net directory startup process.start

我有一个应该在启动时运行的vb.net 2008应用程序。满足某些条件后,PC应该重新启动。以下是失败的代码:

System.Diagnostics.Process.Start("shutdown", "-r -t 00 -f", myUsername, myPassword, myDomain)

myUsername和myDomain都是字符串,而myPassword是SecureString。手动执行时应用程序正常工作,但在启动时执行时会出现以下错误(通过放入启动文件夹或添加到注册表中):

目录名无效

此外,当省略最后3个参数并且用户具有必要的权限时,程序将正确执行。

如何在启动时使用特定的备用用户凭据强制重新启动?

1 个答案:

答案 0 :(得分:1)

您正在使用当前工作目录作为默认开始此过程。如果该目录对您指定的用户无效,则可能会导致问题。请改为使用Process.Start(ProcessStartInfo)重载。将ProcessStartInfo.WorkingDirectory设置为适合任何用户的目录。像c:\

KB article中的详细信息。