编辑:试过这个:
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.\Editor PDF\editor_pdf.exe”不被识别为内部或外部命令、可操作的程序或批处理文件。
我想知道如何以管理员身份执行该文件,或者如何以当前/普通用户的身份运行该文件。
注释:如果你们中的一些人在问自己“为什么不把cmd作为普通用户打开呢?”我试图从另一个只能以管理员身份运行cmd的程序调用这个程序,这就是为什么。
发布于 2017-07-21 13:00:16
您需要首先将网络驱动器路径转换为其真正的UNC路径。正如@RbMm所说,网络驱动器是一种每次使用的配置。
如果坚持使用cmd,则可以使用wmic path win32_mappedlogicaldisk get DeviceID, ProviderName检索目标的真实路径。
您还可以使用温纳皮 WNetGetConnection检索驱动器的路径。
进程应该在管理员上下文中完成而不是。如果不能,则需要使用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);其他信息:
https://stackoverflow.com/questions/45237110
复制相似问题