编辑:试过这个:
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的程序调用该程序,这就是原因。
答案 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);
其他信息: