如果我以普通用户身份运行,则无法以管理员身份运行文件

时间:2017-07-21 11:59:15

标签: windows cmd administrator

  

编辑:试过这个:C:\WINDOWS\system32>runas /user:gabs-pc\gabs-pc "J:\TI\...\Editor_PDF\editor_pdf.exe"

     

出现此错误:"系统无法完成指定的文件。"

很难在主题标题上公开我的问题......

嗯...我有一个我想要运行的 .exe 文件,这个文件位于一个名为 J:\ 的本地网络的共享硬盘中。

如果我在给定路径中以普通用户身份打开cmd提示符,并尝试使用以下命令执行.exe文件:

"J:\TI\Estágio\gabriel\Editor de PDF\Editor PDF\editor_pdf.exe" param1 param2 param3

工作正常。但是当我尝试运行完全相同的文件时,从同一台计算机以管理员身份打开cmd提示符时出现以下错误:

  

'" J:\ TI ... \编辑PDF \ editor_pdf.exe"'不被识别为内部或外部命令,可操作程序或批处理文件。

我想知道如何以管理员身份执行该文件,或者以单行解决方法将该文件作为当前/普通用户运行。

评论。:如果你们中的一些人问自己"为什么不打开cmd作为普通用户?"。我试图从另一个只能作为管理员运行cmd的程序调用该程序,这就是原因。

1 个答案:

答案 0 :(得分:1)

您需要先将网络驱动器路径转换为真正的UNC路径。正如@RbMm所说,网络驱动器是一种按使用配置。

如果您坚持使用cmd,则可以使用wmic path win32_mappedlogicaldisk get DeviceID, ProviderName来检索目标的真实路径。

您也可以使用Winapi WNetGetConnection来检索驱动器的路径。

该过程应在管理员上下文中 NOT 完成。如果不能,则需要使用CreateProcessAsUser从其他用户的角度检索信息。

伪代码:

char path[260] = {0};
WNetGetConncetion ("J:", path, 260);
WinExec ("\"" + path + "\\TI\\Estágio\\gabriel\\Editor de PDF\\Editor PDF\\editor_pdf.exe"
       + "\" " + param1 + " " + param2 + " " + param3, SW_HIDE);

其他信息: