我正在开发一个在 Windows 计算机上执行后期映像任务的程序。它需要执行的几项操作都需要以管理员身份运行子进程。似乎有适用于 Linux 和 macOS 的解决方案,但没有适用于 Windows 的解决方案。
这是我正在尝试运行的事情之一。
final ProcessResult userResult = Process.runSync("runas", ["net", "user", "/add", "it_admin"], runInShell: true);
当我查看输出时,出现以下错误:
Encountered an error trying to run "uname -m"
我尝试过在没有“runas”的情况下运行相同的进程,但没有成功。
final ProcessResult userResult = Process.runSync("net", ["user", "/add", "it_admin"], runInShell: true);
我尝试将以下内容添加到 runner.exe.manifest
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
并将以下两项内容添加到 CmakeLists.txt
SET_TARGET_PROPERTIES(PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" /SUBSYSTEM:WINDOWS")
SET_TARGET_PROPERTIES(${BINARY_NAME} PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrator' uiAccess='false'\" /SUBSYSTEM:WINDOWS")
非常感谢您的帮助!