首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能以管理员身份运行文件,但如果我作为普通用户运行,则可以

不能以管理员身份运行文件,但如果我作为普通用户运行,则可以
EN

Stack Overflow用户
提问于 2017-07-21 11:59:15
回答 1查看 133关注 0票数 0

编辑:试过这个:C:\WINDOWS\system32>runas /user:gabs-pc\gabs-pc "J:\TI\...\Editor_PDF\editor_pdf.exe" 得到了这个错误:“系统无法对指定的文件进行格式化。”

很难揭露我在题目上的问题.

好吧..。我有一个要运行的.exe文件,这个文件是通过一个名为**J:**的本地网络共享的硬盘驱动器。

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

代码语言:javascript
运行
复制
"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的程序调用这个程序,这就是为什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-21 13:00:16

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

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

您还可以使用温纳皮 WNetGetConnection检索驱动器的路径。

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

伪码:

代码语言:javascript
运行
复制
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);

其他信息:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45237110

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档