我正在尝试使用WindowsAPI在Windows10中创建一个新的注册表项,即RegCreateKeyEx函数,然后使用GetSecurityInfo获取其DACL。所有断言都进行得很顺利,直到我到达所说的GetSecurityInfo函数调用,它给出了一个无效的句柄值错误(错误6)。我做错了什么?这是一个更复杂的项目的一部分,所以我只会在这里给出(或者我认为是什么,但我也可以添加其余的)相关部分:RegCreateKeyEx的包装器,使输出更易于处理并设置遇到的任何错误:inlineexternautoRegCreateKeyEx_safe(_In_constHKEYhKey,_I
我试图将一些重复的安装任务封装到一个私有(private)安装程序中。该程序供内部使用,为工业用户设置定制的单一用途系统。我需要管理员权限来为我们的环境调整一些Windows设置,然后我需要为要使用的应用程序软件包设置一些当前用户设置。当管理员权限不再时,在其list中使用requireAdministrator的Windows程序(使用纯C,使用VisualStudio2017创建)是否有可能恢复到启动该程序的用户需要吗?我已经在linux中看到了这一点,但无法找到在Windows中完成的任何示例(甚至提及)。帮助?请问? 最佳答案
模拟用户的典型方法是调用LogOnUser()以获取用户的访问token并将此token传递给ImpersonateLoggedOnUser()以进行模拟。但是,这只会模拟调用线程的用户。有没有办法模拟或更改进程的访问token(主token)?支持我正在访问网络共享,并且生成了多个线程来访问该网络共享的不同部分。我是否必须在所有这些线程中模拟远程用户(有权访问该共享)?还是有一种方法可以先“模拟”进程,以便在生成新线程时,它们已经通过自动继承进程主token获得了访问权限? 最佳答案 不,这是不可能的。NtSetInformati
有谁知道是否可以可靠地确定(以编程方式C/C++...)WindowsPC上是否安装了防火墙或IP过滤软件?我需要检测主机操作系统是否在我的客户端软件中阻止了某个服务器IP。在这种情况下,我不需要担心外部硬件防火墙,因为我可以完全控制它。我只关心软件防火墙。我希望我可以迭代Windows网络堆栈或NDIS接口(interface)并确定这一点 最佳答案 在阅读了您对其他答案的一些评论后,我认为这实际上可能更接近您正在寻找的内容。它可能无法捕获所有类型的防火墙,但任何主要的防火墙供应商都应该在安全中心注册,因此可以使用此方法进行检测。
我正在使用C++MFCwindows下如何获取文件的安全属性,有没有方便的api?非常感谢! 最佳答案 你能检查一下吗TheWindowsAccessControlModelPart1TheWindowsAccessControlModel:Part2另外,看这里WindowsAccessControl 关于c++-如何在Windows中获取文件安全属性,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com
应用程序应接收来自系统所有进程的消息。使用PostMessage调用发送消息,该调用返回错误(5,访问被拒绝)。该代码在WindowsXPSP2上运行正常,但在Windows7上应用程序只接收来自其自身的消息,它应该从每个应用程序接收消息。阅读PostMessage的文档,我可以读到:WhenamessageisblockedbyUIPIthelasterror,retrievedwithGetLastError,issetto5(accessdenied).但实际上它并没有说明如何解决这个“UIPI”。我该怎么办? 最佳答案 您可
我有一个从受限UAC启动进程复制的用户token,我想从中删除拒绝组SID。我怎么做?如果我使用TOKEN_GROUPS信息类类型调用SetTokenInformation,我会收到无效参数错误。谢谢。 最佳答案 事实证明,有一种受支持的方法可以做到这一点。基本上你需要做一个双重间接来完成这项工作。首先,您想要使用WTSQueryUserToken获取用户token的session.接下来,您需要使用GetTokenInformation获取关联的管理用户token(寻找TokenLinkedToken信息)。现在您有了admint
我正在开发一个小程序,要求用户插入USB闪存驱动器(预配置)以登录系统。它现在的工作方式是像往常一样登录到Windows操作系统。然后脚本检查USBkey,如果找到,则关闭。但是,如果找不到key,则会出现一个对话框供用户输入密码。他们在安装期间指定了一定的时间。现在,问题是,用户可以启动任务管理器并终止进程,从而使脚本无用。有一个更好的方法吗?如果USBkey不存在,我该如何禁用任务管理器?该软件完全用Python编写。 最佳答案 根据您的评论,您正在将用户登录到Windowssession中。您将无法使用您设置的方案来保护系统-
我想在Windows上安全地存储一个共享key,但让在可能不同的用户帐户下运行的应用程序可以访问此key。在OSX上,解决方案是将key放入具有适当ACL的系统钥匙串(keychain)中,以将对key的访问限制为仅需要使用该key的各种应用程序。在Windows上,安全存储(CryptProtectData()和CryptUnprotectData())允许我存储secret,为特定用户加密但似乎不允许限制访问特定进程的key。此外,无法使用CryptProttectData来保护不同用户访问的数据。看来我唯一的选择是Windows服务,它(1)使用CryptProtectData(
我需要在.NETWindows应用程序中写入一些日志文本,然后将该文本显示给用户。我对创建日志文件的位置没有具体要求。最初我将日志文件写在与应用程序相同的文件夹中,但在某些计算机上,应用程序用户没有创建文件的权限...是否有一种机制可以在具有最低用户权限的某处创建日志(文本)文件? 最佳答案 可以写入当前用户applicationdata目录。用户应该在那里拥有完全权限。您可以使用请求路径(在.NET中)Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicat