在Go中有什么方法可以将新进程或线程提升为管理员?似乎ShellExecute()在Go中不可用,并且无法使用CreateProcess()提升。我不知道还有什么可能。 最佳答案 你可以试试看项目w32:它有一个shell32.goShellExecute()这可能会有用。w32isawrapperofwindowsapisfortheGoProgrammingLanguage.Itwrapswin32apisto"Gostyle"tomakethemeasiertouse.2020年更新,自2014年以来,包golang.org/
我想知道一个程序是否可以通过UAC提示来提示用户提升它自己的权限而不启动另一个进程。我可以在互联网上找到的所有示例似乎都是ShellExecute"runas",它创建了一个具有提升权限的新进程。如果这不可能,那么我想我最好的解决方案是创建一个命名管道,使用特殊参数ShellExecute我自己的程序,然后将执行该操作所需的所有数据推送到管道中。如果有更好的建议,我会很高兴听到这些建议。感谢您的任何意见。 最佳答案 不,您不能提升现有流程。你是对的-你已经开始了一个新的提升过程并让它为你完成工作。
我想知道一个程序是否可以通过UAC提示来提示用户提升它自己的权限而不启动另一个进程。我可以在互联网上找到的所有示例似乎都是ShellExecute"runas",它创建了一个具有提升权限的新进程。如果这不可能,那么我想我最好的解决方案是创建一个命名管道,使用特殊参数ShellExecute我自己的程序,然后将执行该操作所需的所有数据推送到管道中。如果有更好的建议,我会很高兴听到这些建议。感谢您的任何意见。 最佳答案 不,您不能提升现有流程。你是对的-你已经开始了一个新的提升过程并让它为你完成工作。
我认为CSIDL_COMMON_APPDATA\company\product应该是放置应用程序所有用户通用并且应用程序可以修改的文件的地方,但是,在Vista上,这是一个阅读-唯一的位置,除非由安装程序修改(根据MSDN-http://msdn.microsoft.com/en-us/library/ms995853.aspx),所以......什么是最好的?修改位置的安全设置以允许写入或改用CSIDL_COMMON_DOCUMENTS\company\product?也许还有第三种选择?另外,在某处是否有“官方”微软推荐? 最佳答案
我认为CSIDL_COMMON_APPDATA\company\product应该是放置应用程序所有用户通用并且应用程序可以修改的文件的地方,但是,在Vista上,这是一个阅读-唯一的位置,除非由安装程序修改(根据MSDN-http://msdn.microsoft.com/en-us/library/ms995853.aspx),所以......什么是最好的?修改位置的安全设置以允许写入或改用CSIDL_COMMON_DOCUMENTS\company\product?也许还有第三种选择?另外,在某处是否有“官方”微软推荐? 最佳答案
我需要确定我的程序是否以完全管理员权限运行。我的意思是如果打开了uac(对于winvista/7),我需要确定程序是否真的具有管理员权限(比如用户右键单击并选择“以管理员身份运行”)并且不受uac的限制。我如何在C++中做到这一点? 最佳答案 Win9x:每个人都是“管理员”NT4:OpenThreadToken/OpenProcessToken+GetTokenInformation(...,TokenGroups,...)onDOMAIN_ALIAS_RID_ADMINSSIDinaloop2000+:OpenThreadTok
我需要确定我的程序是否以完全管理员权限运行。我的意思是如果打开了uac(对于winvista/7),我需要确定程序是否真的具有管理员权限(比如用户右键单击并选择“以管理员身份运行”)并且不受uac的限制。我如何在C++中做到这一点? 最佳答案 Win9x:每个人都是“管理员”NT4:OpenThreadToken/OpenProcessToken+GetTokenInformation(...,TokenGroups,...)onDOMAIN_ALIAS_RID_ADMINSSIDinaloop2000+:OpenThreadTok
在Windows上运行的C++应用程序是否可以在运行时放弃特权?例如,如果用户以管理员身份启动我的应用程序,但没有理由以管理员身份运行我的应用程序,我可以通过某种方式放弃管理员权限吗?简而言之,我想在main()函数中编写代码,以删除我不需要的权限(例如,对Windows目录的写入权限)。 最佳答案 是的,您可以使用AdjustTokenPrivileges从您的token中删除不需要和危险的特权。如果不是立即需要,您可以禁用(稍后可以启用该权限)或完全从您的token中删除一个权限。您也可以通过CreateRestrictedTo
在Windows上运行的C++应用程序是否可以在运行时放弃特权?例如,如果用户以管理员身份启动我的应用程序,但没有理由以管理员身份运行我的应用程序,我可以通过某种方式放弃管理员权限吗?简而言之,我想在main()函数中编写代码,以删除我不需要的权限(例如,对Windows目录的写入权限)。 最佳答案 是的,您可以使用AdjustTokenPrivileges从您的token中删除不需要和危险的特权。如果不是立即需要,您可以禁用(稍后可以启用该权限)或完全从您的token中删除一个权限。您也可以通过CreateRestrictedTo
系列文章操作系统权限提升(一)之操作系统权限介绍操作系统权限提升(二)之常见提权的环境介绍操作系统权限提升(三)之Windows系统内核溢出漏洞提权操作系统权限提升(四)之系统错误配置-TustedServicePaths提权操作系统权限提升(五)之系统错误配置-PATH环境变量提权操作系统权限提升(六)之系统错误配置-不安全的服务提权操作系统权限提升(七)之系统错误配置-不安全注册表提权操作系统权限提升(八)之系统错误配置-注册表键AlwaysInstall提权操作系统权限提升(九)之系统错误配置-泄露敏感信息提权操作系统权限提升(十)之系统错误配置-计划任务提权操作系统权限提升(十一)之系