.net 进程启动()有问题

.net 进程启动()有问题,.net,vb.net,.net,Vb.net,我正在制作一个在域上运行的程序。Visual Basic(Visual Studio 2012) 在程序开始时,它会提示用户输入用户名和密码,原因是我正在运行的某些东西需要以管理员身份运行 我有以下问题 Dim passwordRemote As SecureString = ConvertToSecureString(form1.PCMU.Text) Dim DomainRemote As String = "xxxxxxx" Dim UserNameRemote As Str

我正在制作一个在域上运行的程序。Visual Basic(Visual Studio 2012)

在程序开始时,它会提示用户输入用户名和密码,原因是我正在运行的某些东西需要以管理员身份运行

我有以下问题

Dim passwordRemote As SecureString = ConvertToSecureString(form1.PCMU.Text)
    Dim DomainRemote As String = "xxxxxxx"
    Dim UserNameRemote As String = "xxxxxx"
    Dim FileNameRemote As String = "cmrcviewer.exe" 
    Dim directoryRemote As String = "c:\Program Files (x86)\Microsoft Configuration Manager\AdminConsole\bin\i386"

    process.StartInfo.WorkingDirectory = directoryRemote
    process.StartInfo.FileName = FileNameRemote 
    process.StartInfo.Domain = DomainRemote
    process.StartInfo.UserName = UserNameRemote
    process.StartInfo.Password = passwordRemote
    process.StartInfo.UseShellExecute = False

    process.Start()
问题是我得到的是:

系统找不到指定的文件

我已将cmd.exe放入该目录,并且该目录正常工作。位于同一目录中的“cmrcviewer.exe”不起作用

“cmrcviewer.exe”是与sccm2012相关的部分文件

非常感谢您的帮助,

不是
.exe
所在的路径,而是应用程序启动后将用作“当前”目录的路径。默认情况下,它与
.exe
所在的文件夹相同

例如,当您打开项目文件夹的控制台窗口并执行类似于
msbuild
的命令时,工作目录就是您的项目文件夹,而可执行文件的路径始终位于.NET SDK中的某个位置

您的代码只使用可执行文件的相对路径名,这意味着Windows将尝试在应用程序的工作目录中找到它。如果在那里找不到它,它将在用户的path环境变量中查找它

要使代码正常工作,您需要编写:

process.StartInfo.FileName = Path.Combine(directoryRemote,FileNameRemote)

或者根据变量名将整个路径作为单个字符串传递给
FileName

,是否尝试通过网络运行.NET应用程序?由于安全策略的原因,这可能会变得非常棘手(默认情况下,.NET程序集在网络上受到非常严格的限制-您甚至无法获得文件I/O)。